带有负载平衡器服务器的Socket.io/Express



我正在Express服务器上进行socket.io集成,前端(React(连接到服务器。

为了避免请求过载,在到达部署Express服务器的服务器之前,负载平衡器已被配置为中介。

我的问题是,前端是否能够连接到Express服务器/套接字.io,哪个流通过负载均衡器?我读到的是,运输模式应该是">网络套接字";而不是">轮询";。

非常感谢你的建议。

如果你强制webSocket传输,那么socket.io最初不会像通常那样以轮询模式启动,如果负载均衡器支持webSocket连接,那么一切都应该正常。使用负载平衡器进行轮询的另一种方法是使负载平衡器具有粘性,以便每次都将给定的客户端负载平衡到同一服务器。

请注意,如果你的应用程序有理由希望客户端留在同一个负载平衡服务器上(比如假设它暂时断开连接,然后自动重新连接(,那么你会希望你的负载平衡器配置为粘性。如果这无关紧要,那么最初只强制websocket传输就足够了。

仅供参考,以下是如何强制socket.io客户端从webSocket连接开始的:

const socket = io({transports: ["websocket"]});

最新更新