1

我在 Socket.IO 中使用回调来了解操作何时完成。例如:

$loading.show();

socket.emit('delete', {id:123}, function(error){
    $loading.hide();

    if(error)
        alert(error);
});

据我了解,如果套接字断开连接,则消息将排队等待套接字连接。然后发送。但这可能是几分钟甚至几小时,对吧?

有没有办法清除排队的消息、设置超时或以其他方式阻止消息在等待 20 秒时发送?

4

1 回答 1

1

对此有非常简单的解决方案:

socket.on('connect', function() {
    socket.sendBuffer = [];
    // do stuff
});

问题是当套接字失去连接时,套接字缓冲区中可能会留下一些数据。所以,把它清理干净。

于 2016-03-07T20:13:36.120 回答