我正在使用Nodejs和Socket.io。当客户端连接时,会创建新的JavaScript对象。
这些物品永远存在吗?它们是否应在客户端断开连接时被删除或删除?甚至可以删除一个对象?我知道删除不起作用......
谢谢 - 我想这更像是一个普遍的问题,任何建议都会非常有用。
谢谢!
答案 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);
});