为什么websocket服务器关闭连接?

时间:2018-02-16 10:59:08

标签: node.js websocket

enter image description here

我有websocket nodejs服务器,有〜2000个并发连接,服务器定期关闭它们。我不知道原因。 我在我的客户端代码

中捕获它
 this.ws.onclose = function(){
        //try to reconnect in 5 seconds
        console.log("WS CLOSED. RECONNECT IN 5 SECS");
        setTimeout(function(){self.startNative()}, 5000);
    };

我使用以下代码启动服务器

var WebSocketServer = require('ws');

//start websockets server
var webSocketServer = new WebSocketServer.Server({port: config.port2}, function () {
    console.log("Native websocket server process running on " + config.port2);
});

//websockets connection
webSocketServer.on('connection', function(ws, req) {
    ws.on('close', function() {
        //somecode
    });

可能导致什么?

1 个答案:

答案 0 :(得分:2)

互联网上的中间件将关闭长时间(几分钟或几小时)没有数据的连接。您可以通过定期发送“心跳”数据包来解决此问题,例如每五分钟发送一次。

哪个方向产生心跳并不重要,另一方不需要明确回复(但可以)。如果服务器是发送心跳的服务器,这也将帮助服务器更快地修剪死连接。