我的Node.js WebSocketServer最终终止

时间:2015-12-31 14:30:59

标签: javascript node.js websocket forever

我使用ws lib在Node.js中编写了一个小的WebSocketServer。它到目前为止工作,但一段时间后服务器不再可以访问。然后我需要运行

$ node index.js

再次将其重新上线。

这是我的代码:

var WebSocketServer = require('ws').Server,
    wss = new WebSocketServer({port: 8888, path: '/login'});

var userList = [
  { "nick": "foo" },
  { "nick": "bar" },
  { "nick": "baz" }
];

wss.on('connection', function connection(ws) {
  console.log('client connected');
  ws.on('message', function incoming(message) {
    console.log('received %s', message);

    var found = false;
    userList.forEach(function(e) {
      if(e.nickname == message) {
        ws.send(JSON.stringify(e));
        found = true;
      }
    });

    if(!found) {
      ws.send('not found');
    }
  });

  ws.on('close', function() {
    console.log('connection closed');
  });
});

这种行为是否有意?我的第一个想法是,这段代码只能处理一个实例,但我尝试了多个连接而没有任何问题。

现在我用"永远"运行文件但我想知道这是否真的有必要。

1 个答案:

答案 0 :(得分:1)

超时期限之后连接丢失。您需要在某个时间间隔内继续发送数据包以保持连接活动。数据包可以为空。