如何/应该删除旧的websocket连接?

时间:2017-03-07 03:03:35

标签: node.js websocket

我在Node.js上使用'ws'并且我不确定删除多少旧连接(旧连接断开连接或空闲连接,这可能是两个不同的问题)。我是否需要手动实现这两种类型?

1 个答案:

答案 0 :(得分:2)

为此,您需要首先维护服务器端的实时Web套接字连接对象列表。当用户通过关闭浏览器或任何其他方式从Web套接字断开连接时,您需要从列表中删除用户Web套接字连接对象。

服务器端代码。您可以在以下代码中引用members数组来处理它。

io.on("connection",function(client)
{
  client.on("join",function(data)
  {
    members[membercount] = client;
    membername[membercount] = data;
    membercount++;
    for(var i =0 ;i <members.length;i++)
    {
      members[i].emit("message",membername);
    }
  });
  client.on("messages",function(data)
  {
    for(var i =0 ;i <members.length;i++)
    {
      if(members[i].id !== client.id)
      {
        members[i].emit("message",data);
      }
    }
  });
  client.on("disconnect",function(data)
  {
    for(var i =0;i<members.length;i++)
    {
      if(members[i].id ===  client.id )
      {
        membercount--;
        members.splice(i,1);
        membername.splice(i,1);
      }
    }
    for(var i =0 ;i <members.length;i++)
    {
      members[i].emit("message",membername);
    }
  });
});

希望这有助于!!!!!