3

我正在尝试在负载均衡器后面设置 websocket 服务器。起初,我使用了socket.io库。但我发现它sticky session在负载均衡器后面使用时需要。

根据这个网站,它发送多个请求以执行握手并建立连接。如果请求被发送到不同的服务器,连接将失败。

经过进一步研究,我发现其他像SockJS这样的 websocket 服务器库也有同样的问题。它们都需要粘性会话才能在负载均衡器后面工作。

现在我正在检查 websocket 库ws。但我找不到任何在负载均衡器后面使用它的例子。

图书馆是否ws需要粘性会话才能工作?

是否有任何其他 websocket 库可以在负载均衡器后面没有粘性会话的情况下工作?

4

1 回答 1

3

您不能/不想依赖粘性会话是否有特定原因?

如果你想在多个主机之间分配套接字连接,你将需要一些解决方案,而粘性会话是一个非常好的解决方案。

关于使用您链接到的多个节点的socket.io 页面甚至描述了一种实现解决方案的方法,通过 NginX 根据其原始地址路由客户端”。你试过这个并发现它不起作用吗?

还有一篇关于使用 Redis 横向扩展 Node.js 和 WebSockets的非常好的文章,它描述了解决粘性会话和自动故障转移的确切问题。

于 2016-12-22T12:07:47.997 回答