Я создаю пользовательское приложение чата WebSockets, оно работает довольно хорошо, и сейчас я пытаюсь реализовать функцию пересоединения, поэтому, если сервер Node выходит из строя, клиенты переходят в режим переподключения, когда они пытаются подключиться кwebsocket каждую секунду или что-то.Я вроде как сделал это возможным, это клиент:
function connect() {
const url = 'ws://localhost:1720';
const ws = new WebSocket(url);
ws.onopen = function(e) {
$(".pulse").css("background","#51ff85");
$(".pulse").css("animation","pulse 2s infinite");
};
ws.onclose = function(e) {
$(".pulse").css("background","#ff7272");
$(".pulse").css("animation","none");
setTimeout(function() {
connect();
}, 1000);
};
}
Этот код, кажется, работает, но когда клиент, который уже был подключен, пытается подключиться снова после отключения и отправляет сообщение, клиентвстречается с этой ошибкой: WebSocket is already in CLOSING or CLOSED state
Я сделал короткое видео, чтобы показать проблему: https://streamable.com/twnuj
Как видите, части сообщения, похоже, попадают на сервер (obj.username), но сообщение не отправлено или не получено.
Может ли быть проблема в том, что клиент пытается установить связь с экземпляром мертвого сервера?
Очень признателен за любой вклад по этому вопросу.проблема!<3 </p>