删除socket.io上的对象

时间:2012-03-29 02:10:40

标签: javascript node.js socket.io

我正在使用Nodejs和Socket.io。当客户端连接时,会创建新的JavaScript对象。

这些物品永远存在吗?它们是否应在客户端断开连接时被删除或删除?甚至可以删除一个对象?我知道删除不起作用......

谢谢 - 我想这更像是一个普遍的问题,任何建议都会非常有用。

谢谢!

2 个答案:

答案 0 :(得分:23)

如果你不清理,那么是的,他们将永远留在那里,因为我认为你正在使它们全球化。

一旦用户通过绑定到disconnect事件监听器断开连接,您应该进行清理:

var clients = {}
sockets.on('connection', function(socket) {
  clients[socket.id] = socket;

  socket.on('disconnect', function() {
    delete clients[socket.id];
  });
});

答案 1 :(得分:0)

   socket.on('disconnect', disc => {
    console.log("disconnect");
    console.log(socket.id);
    console.log(rects);
    console.log(rects.indexOf(id));
      let index = rects.indexOf(id);
      rects.splice(index, 1);
      socket.broadcast.emit("discon", id);  
   });