套接字 IO 发出失败回调

socket io emit failed callback

提问人:fcbflying 提问时间:12/25/2015 更新时间:6/8/2020 访问量:1142

问:

有没有办法知道套接字 io 发出失败和成功,类似于 ajax 回调方法:onSuccess、onError? 对于套接字 io emit 我只找到:

socket.emit('发布', {message:'测试消息'},函数(数据) { 警报(“”)})

只有当服务端发送确认响应时,才会调用此回调。但它不能适用于这种情况:

在向服务器发送消息的那一刻,存在网络不良或连接丢失,这意味着服务器没有收到此消息,因此不调用客户端回调函数。

我想要的是:

当我调用套接字io emit时,如果它失败了,我想重试3次。

回调 socket.io 发出

评论

0赞 Maria 2/10/2018
如果你想模仿HTTP的行为,你必须自己编写这种机制,因为它不是websocket工作的一部分。但是它可以很容易地用一些标志来完成。setTimeout
0赞 BhaskerYadav 11/12/2018
您是否尝试过使用“错误”事件回调?

答:

0赞 Ryan Soderberg 6/8/2020 #1

我知道这是一篇旧帖子,但以防万一有人仍然遇到麻烦。

var socket = new io.connect('http://localhost:3000', {
    'reconnection': true,
    'reconnectionDelay': 1000,
    'reconnectionDelayMax' : 5000,
    'reconnectionAttempts': 3
});
socket.on('connect_error', function() {
    console.log('Connection failed');
});
socket.on('reconnect_failed', function() {
    // fired only after the 3 attemps in this example fail
    console.log('Reconnection failed');
});

更多信息在这里 -> https://socket.io/docs/client-api/#manager-reconnectionAttempts-value