Socket.io 回退到轮询后强制升级?
这可能是一个愚蠢的问题,但我想知道是否有办法强制socket.io定期重试使用websocket作为传输而不是轮询 我注意到有时我的应用程序无法建立websocket连接(握手失败:ERR\u connection\u RESET)。io正确地返回轮询,但它似乎从未尝试再次切换回WebSocket,即使它可以工作。我的观察正确吗? 如果是,你有什么建议 如果您需要任何代码,请告诉我。我真的想不出一个相关的代码示例,因为这更像是一个理论问题 io正确地返回轮询,但它似乎从未尝试再次切换回WebSocket,即使它可以工作。我的观察正确吗 是的,没错 如果是,你有什么建议 我不认为试图重新建立联系是图书馆的工作。您可以设置自己的侦听器,检查服务器的可用性-有时服务器崩溃,用户不会注意到他们不再有连接 这是我们客户端的一个例子,希望对挖掘有所帮助Socket.io 回退到轮询后强制升级?,socket.io,Socket.io,这可能是一个愚蠢的问题,但我想知道是否有办法强制socket.io定期重试使用websocket作为传输而不是轮询 我注意到有时我的应用程序无法建立websocket连接(握手失败:ERR\u connection\u RESET)。io正确地返回轮询,但它似乎从未尝试再次切换回WebSocket,即使它可以工作。我的观察正确吗? 如果是,你有什么建议 如果您需要任何代码,请告诉我。我真的想不出一个相关的代码示例,因为这更像是一个理论问题 io正确地返回轮询,但它似乎从未尝试再次切换回WebSo
//If sockets close
window.ws.onclose = function (e) {
ws.onclose = null;
ws.onerror = null;
ws.onopen = null;
// restart sockets in: 3000 ms
setTimeout(function () { ctx.createWS(); }, 3000);
};
window.ws.onerror = function (error) {
//On error we will try to restart sockets in function described before
ws.close();
};
好吧非常感谢。我只是想确认我的工作就是跟踪这件事。将尽快接受。我要说的是修复您的服务器以不拒绝连接。或者,如果您处于轮询模式,您可以每隔一段时间断开连接并重新连接客户端,客户端将自动再次尝试webSocket。是的。这只是一个理解情况的例子。显然,我不希望握手一开始就失败。谢谢你的评论!我的观点是,偶尔的错误连接重置可能不仅仅针对webSocket连接。这可能只是web服务器健康状况不佳的一个迹象。如果这是您的服务器,您的首要任务应该是使您的服务器健康,这样就不会发生这种情况,而不是尝试使用客户端代码来解决它。是的。这就是这个问题产生的原因。我们的服务器非常不稳定,因此初始握手10次失败1次。我们正在分别调查这些服务器问题,但这并不是问题的一部分。无论如何,谢谢你的关心。