Как восстановить соединение через веб-сокет при использовании STOMP JS в Grails gsp?

Моя проблема в том, что когда я открываю страницу, я получаю данные из веб-сокета, но во время тестирования, когда я закрываю свое интернет-соединение, а затем снова подключаю его, я вижу сообщение "Woops...Connection lost undefined". Я хочу автоматически подключиться к веб-сокету. Мой код:

var socket = new SockJS("${createLink(uri: '/stomp')}");
        var client = Stomp.over(socket);
            client.connect({}, function () {
                client.subscribe("/topic/${userInstance?.username}", function (message) {
                    console.log("Data on##....." + message.body);
                    var data = jQuery.parseJSON(message.body.toString());
                    var deviceId = $('#deviceId').find(":selected").val();
                    if (data.type == "balance") {
                        showDataBalance(data);
                    } else if (liveTrack == true && data.deviceId == deviceId && data.type == "event") {
                        var latLog = {
                            lat: parseFloat(data.eventData.latitude),
                            lng: parseFloat(data.eventData.longitude)
                        };
                        drawMarkerForLiveTracking(latLog, data.eventData);
                    }

                });
            });

И мой код STOMP.JS:

this.ws.onclose = function() {
        var msg;
        msg = "Whoops! Lost connection to " + _this.ws.url;
        if (typeof _this.debug === "function") {
          _this.debug(msg);
        }
        _this._cleanUp();
        return typeof errorCallback === "function" ? errorCallback(msg) : void 0;
      };
      return this.ws.onopen = function() {
        if (typeof _this.debug === "function") {
          _this.debug('Web Socket Opened...');
        }
        headers["accept-version"] = Stomp.VERSIONS.supportedVersions();
        headers["heart-beat"] = [_this.heartbeat.outgoing, _this.heartbeat.incoming].join(',');
        return _this._transmit("CONNECT", headers);
      };

Какие изменения я должен сделать в моем установлении соединения, чтобы сделать это автоматическим повторным соединением?

0 ответов

Другие вопросы по тегам