我在 Socket.IO 中使用回调来了解操作何时完成。例如:
$loading.show();
socket.emit('delete', {id:123}, function(error){
$loading.hide();
if(error)
alert(error);
});
据我了解,如果套接字断开连接,则消息将排队直到套接字连接。然后就被发送了。但这可能需要几分钟甚至几小时,对吧?
有没有办法清除排队的消息、设置超时或以其他方式阻止消息在等待 20 秒后发送?
最佳答案
对此有非常简单的解决方案:
socket.on('connect', function() {
socket.sendBuffer = [];
// do stuff
});
问题是,当套接字失去连接时,套接字缓冲区中可能会残留一些数据。所以,把它清理干净。
关于javascript - 如何在 Socket.IO 中取消、超时或清除排队消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17216421/