无论断开是由于超时,还是由于用户离开页面和客户端故意发送断开事件,服务器端的disconnect事件似乎都会触发。有没有办法区分这两者?
发布于 2014-02-20 00:10:03
我现在如履薄冰,但你应该能找到断线的原因。
这就是source正在做的事情:
socket.emit('disconnect', packet.reason || 'packet');因此,请检查是否存在断开连接的原因。
发布于 2015-03-23 04:18:12
奇怪的是,这些都没有文档记录,但你可以通过试验和错误来找出它们。例如,我在断开客户端连接时得到“强制关闭”,在停止服务器时得到“传输关闭”。不过,超时可能是另一回事。
socket.on('disconnect', function(reason) {
if (reason === 'forced close') {
console.log('socket was disconnected by client');
}
if (reason === 'transport close') {
console.log('socket was disconnected by server');
}
else {
console.log('socket was disconnected for reason: ' + reason);
}
});https://stackoverflow.com/questions/21885594
复制相似问题