3 回答
TA贡献2039条经验 获得超7个赞
在连接监听事件中,有一个用于断开连接的监听事件:
var clients = [];
server.on('connection', (socket) => {
// add client
clients.push({id:15, name:'client15'});
socket.on('disconnect', () => {
// first search client and remove
});
});
现在下一个问题是:我怎么知道哪个人断开了连接?
这个问题的答案不仅仅是将逻辑置于流程中,您可以为保存客户端创建一个全局变量,当此人启动会话或连接到套接字时,它会注册在该变量中,并且当它断开连接时必须采取在上述变量中,这不是一个例子,但可能有更好的方法。
TA贡献1872条经验 获得超3个赞
所以我对这个似乎有效的问题的天真方法是使用 getConnections,它会在每个连接事件上增加,并查看它是均匀还是不均匀,以便能够确定它是连接还是断开:
server.on("connection", () => {
server.getConnections((e, c) => {
if (c % 2 === 0) {
// Disconnected
} else {
// Connected
}
});
感觉这不是一个好的解决方案,但也许足够好,直到有人可以向我展示更好的方法。
TA贡献1775条经验 获得超8个赞
server.on("close", () => {
console.log("Disconnected!")
});
https://nodejs.org/api/http.html#http_event_close
添加回答
举报