服务器端断开连接事件似乎触发断开是由于超时,还是由于用户离开页面而客户端故意发送断开连接事件。有没有办法区分这两个?
答案 0 :(得分:1)
我在这里很薄,但你应该能够找到断开的原因。
这就是source正在做的事情:
socket.emit('disconnect', packet.reason || 'packet');
因此,请检查是否存在断开连接的原因。
答案 1 :(得分:0)
奇怪的是,这些没有记录,但你可以通过反复试验找出它们。例如,我在断开客户端时“强制关闭”,在停止服务器时“传输关闭”。但是,超时可能是别的东西。
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);
}
});