如果多个socket.io服务器(ALB平衡)客户端正在连接并断开两个节点的连接,导致'传输错误'。理想情况下,它应该连接到一个节点并保持连接到该节点。在ALB中有一个节点的情况下,连接保持持久性。任何帮助?socket.io客户端连接重复断开连接
1
A
回答
1
默认情况下,当socket.io第一次启动时,它将以http轮询模式启动。经过几次连续的http请求,并在两端的能力检查完成后,它将切换到webSocket模式。这是为了首先建立一个工作连接,然后确定两端是否支持webSocket,如果是,则切换到使用webSocket。如果你有一个非粘性负载平衡器,那么你确实可能会遇到前几个http轮询请求的问题,这些请求会在不同的服务器上结束,这可能会破坏socket.io的工作方式,因为单个服务器会丢失一些连接启动顺序。
您可以将您的负载均衡器配置为粘性,以便他们始终将同一个客户端发送到同一台服务器,或者您可以告诉socket.io您只希望它以webSocket模式连接。
配置socket.io仅使用一个网页套接字和无轮询(所以只有一个连接),你可以在这里看到设置在客户端的配置选项:
Socket.io 1.x: use WebSockets only?
请记住, socket.io具有自动连接逻辑,因此如果在建立到服务器的socket.io连接后很长一段时间,连接因某种原因停止工作,客户端将丢弃当前连接并尝试创建一个新连接。如果您仍在使用非粘性负载平衡器,则该重新连接可能会在不同的服务器上结束。取决于你在服务器上做什么,可能会或可能不成问题。粘性负载平衡将确保重新连接在同一台服务器上结束。
相关问题
- 1. socket.io断开连接事件,客户端断开连接检测
- 2. 如何从客户端断开连接并重新连接socket.io?
- 3. 客户端断开连接
- 4. 重新连接断开连接的客户端套接字
- 5. Socket.io - 客户端断开后手动重新连接
- 6. socket.io客户端不连接
- 7. socket.io客户端重新连接超时
- 8. (Restify,ReactJS,Node.js)Socket.io客户端状态断开连接,服务器记录连接
- 9. Socket.io:第一个客户端断开第二个连接
- 10. socket.io客户端发送时断开连接
- 11. Websocket客户端断开连接websocket4net
- 12. 处理TCP客户端断开连接
- 13. “客户端断开连接”HttpException
- 14. PHPWebsocket客户端立即断开连接
- 15. 客户端连接/断开qjsonrpc事件
- 16. socket.id断开连接客户端?
- 17. SignalR .NET客户端断开连接
- 18. 断开连接时销毁socket.io连接
- 19. C STREAM客户端套接字在断开连接后重用
- 20. 将客户端断开连接并重新连接到接收者会话
- 21. 扭曲 - 我需要定期连接/断开客户端连接
- 22. Socket.io断开连接和redis
- 23. 客户不handshaken客户端应该重新连接,socket.io集群
- 24. socket.io客户端如何进行连接
- 25. socket.io-客户端连接,但不发光
- 26. Socket.io客户端未连接服务器
- 27. 断开并重新连接手动Socket.IO
- 28. 触发socket.io客户端在重新启动时发出断开连接
- 29. 客户端重新连接
使用连接直接使用传输作为websocket而不是轮询的任何缺点? –
@VikasGoyal - 如果您在不支持webSockets的浏览器中运行,那么您将无法获得连接。 socket.io通常会通过用http轮询代替丢失的webSocket来处理这种情况。 – jfriend00