我想在两台服务器上设置一个nodejs聊天应用程序,但我担心的是,将节点检查想要在套接字上发送消息的用户是否连接在不同的套接字上。
- 假设nodejs1在server1上,清单在3001上,nodejs2在server2上,清单在3002上
- 用户1连接3001,用户2连接3002
- 用户1想给用户2发送消息
- 用户1和用户2套接字存储在db
这种沟通是可能的吗?
检查一下https://github.com/indutny/sticky-session是否适合您,如果您将使用socket.io
插座。IO正在执行多个请求来执行握手并与客户端建立连接。在集群中,这些请求可能会到达不同的工作器,这将破坏握手协议。
Sticky-sessions模块正在使用IP地址平衡请求。因此,客户端将始终连接到相同的工作服务器和套接字。IO将按预期工作,但在多个进程上!