繁体   English   中英

Node.js“ws”websocket服务器在~30秒后随机断开客户端,错误1006

[英]Node.js “ws” websocket server randomly disconnects client after ~30 seconds, error 1006

我有一个简单的websocket服务器,如下所示:

const WebSocket = require('ws');
const wss = new WebSocket.Server( { server: server, path: "/ws" });

wss.on('connection', function connection(ws, req) {

    console.log("Connected");
    ws.on('message', function incoming(message) {
        console.log('received: %s', message);
    });

    ws.on('close', function close(code, reason) {
        console.log("Code: "+code+" | Reason: "+reason);
        console.log('disconnected');
    });

    ws.send('something');
});

我有一个连接到它的客户端很好,但在连接约30秒后,websocket服务器关闭连接,错误代码为“1006”。 谷歌告诉我这意味着连接异常中断。 但是,我不确定是什么原因引起的。 ws.on('error')回调也没有被触发。 如何与客户保持无限期/长期连接?

Nginx将30秒设置为默认超时。

您需要使用proxy_read_timeout指令增加此数字。

例如,将超时延长到一天(这可能是过度杀伤)

proxy_read_timeout 86400s;

通常我在location部分设置它,以便可以仅为websocket覆盖它而不影响可能需要具有默认值的区域。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM