【发布时间】:2018-07-06 11:29:51
【问题描述】:
我一直在寻找“WebSocket 已处于 CLOSING 或 CLOSED 状态”问题的解决方案,结果发现:
- Meteor WebSocket is already in CLOSING or CLOSED state error
- WebSocket is already in CLOSING or CLOSED state.
答案 #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 已经处于 CLOSING 或 CLOSED 状态。”。
我正在寻找一种方法来检测和处理这些断开连接并立即尝试再次连接。
最正确和最有效的方法是什么?
【问题讨论】:
-
你可以找到答案here
-
这是一个影响很多人的已知问题和问题。这可能会有所帮助:stackoverflow.com/a/53843646/468592
-
@JeremyHarris 链接已损坏
-
技术上没有问题。看起来原始答案作者删除了答案。如果您有足够高的声誉,您可以看到已删除的答案。无论如何,这里似乎有一个有效的答案。
标签: javascript node.js sockets websocket