Я искал решение проблемы "WebSocket уже находится в состоянии CLOSING или CLOSED" и нашел следующее:
- Meteor WebSocket уже находится в состоянии CLOSING или CLOSED
- WebSocket уже находится в состоянии CLOSING или CLOSED.
Ответ # 1 предназначен для строгого отношения к Meteor, а # 2 не имеет ответов... У меня есть серверное приложение Node с сокетом:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ server });
wss.on('connection', function connection(socket) {
socket.on('message', function incoming(data) {
console.log('Incoming data ', data);
});
});
И клиенты подключаются следующим образом:
const socket = new WebSocket('ws://localhost:3090'); //Create WebSocket connection
//Connection opened
socket.addEventListener('open', function(event) {
console.log("Connected to server");
});
//Listen to messages
socket.addEventListener('message', function(event) {
console.log('Message from server ', event);
});
Однако через несколько минут клиенты случайным образом отключаются, а функция
socket.send(JSON.stringify(data));
Затем выкинет "WebSocket уже в состоянии ЗАКРЫТЬ или ЗАКРЫТО".
Я ищу способ обнаружения и устранения этих отключений и немедленно попытаюсь подключиться снова.
Каков наиболее правильный и эффективный способ сделать это?