javascript - 如何在 Socket.IO 中取消、超时或清除排队消息

标签 javascript node.js socket.io

我在 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/

相关文章:

javascript - Three.js:为什么没有出现影子?

javascript - 根据 startTime 和 endTime 对数组进行排序

javascript - 分块接收的 Node.js 和 Socket.io 数组

PHP 在表单值内回显

javascript - Django 在 `model.save()` 之后不更新 HTML 模板

javascript - 匹配正则表达式 - JavaScript

javascript - 搜索嵌套对象并返回对第一个找到的函数的引用,未知大小,未知名称

node.js - socket.io 客户端持续重试无法访问的主机

javascript - 400错误请求(使用node和socket.io制作游戏)

javascript - .load() 函数在点击时加载整个页面