Коллеги, доброго времени суток,
суть проблемы такова. Пишу приложение и вэбсокетами. Встал на клиенте. Точнее встал над recconect
Вот код:
'use strict';
window.SocketModule = ((window) => {
class SocketModule {
constructor(options) {
this.path = options.path;
this.reconnectNumber = 0;
this.connection();
}
/*
* connection - установить соединение
* connectionStatus,
*
* disconnection - остановить соединение
* reconnection - пересоединение
*
* send - отправить сообщение
* accept - принять сообщение
*
*/
connection() {
this.socket = new WebSocket(this.path);
this.socket.addEventListener('open', (e) => {
console.log('connection...);
this.send('checkConnection', {
connect: true
});
});
this.socket.addEventListener('close', (e) => {
console.log('reconnection... please wait...');
this.connection(this.path);
});
}
send(event_name, data) { // event_name (string), data (string, array, object)
if (event_name.constructor.name === 'String') {
let _this = this;
this.wait(function() {
_this.socket.send(JSON.stringify({event_name, data}));
}, 0);
} else return;
}
wait(callback, time) {
let timer;
clearTimeout(timer);
if (this.socket.readyState === 1) {
callback();
} else {
let _this = this;
timer = setTimeout(function() {
_this.wait(callback, time);
}, time);
}
}
};
return SocketModule;
})(window);
Создается экземпляр класса websocket и на него навешивается события open и close. По событию close происходит рекурсивный вызов этой же функции. В консоль падает сообщение : WebSocket connection to 'ws://server.localhost:5555/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED - так и должно быть. После включения сервера связь появляется, все ок.
Но у меня вопрос, может кто делал или словом подскажет. Как избежать данного сообщения??? Или может, как сделать reconnect???