我正在努力寻找有关socket.io超时值的任何文档。我在客户端使用//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js在服务器端使用Flask-SocketIO。
这是我创建套接字的方法:
namespace = '/coregrapher'
var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);
socket.on('connect', function() {
socket.emit('my event', {data: 'I\'m connected!'});
});
socket.on('my response', function(msg) {
$('#result').append(msg.data);
});
问题是,如果服务器甚至在一分钟内都没有向客户端发送任何消息,反之亦然,则客户端将断开连接,并且如果服务器尝试向客户端发出另一次发射,则它将失败,因为客户端已断开连接。如何使客户保持联系?
谢谢!
全局问题是,如果您的服务器长时间不响应保持活动的数据包,则客户端将断开连接并尝试重新连接。如果无法重新连接,最终它将停止尝试。
就是说,如果您想修改重试逻辑的配置,则可以将选项对象作为第二个参数发送给您的.connect()
调用。根据此处的文档,可以控制以下选项:
选项:
- 重新连接是否自动重新连接(true)
- reconnection延迟尝试新的重新连接之前等待的时间(1000)
- reconnectionDelayMax在两次重新连接之间等待的最长时间(5000)。每次尝试都会增加重新连接的数量,该数量由reconnectionDelay指定。
- 发出connect_error和connect_timeout事件之前的超时连接超时(20000)
因此,如果希望它继续尝试自动重新连接更长的时间,则可以增加最后三个选项的时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句