4
我在我的PHP应用程序中使用棘轮(http://socketo.me/)用于websockets。我有多个运行该应用程序的虚拟机,并且这些机器中的每一台也承载websocket服务。通过HAProxy将请求传递给其中一台虚拟机。目前,用户还在与应用程序连接的同一节点上使用websocket服务。棘轮多台服务器
现在我遇到了一个websocket服务器相互讨论的问题。 例如:
- USER1连接到节点1和用户2连接到节点2
- 用户1通过网页套接字发送的WebSocket消息给用户2
- 因为他被连接到另一个节点
做这种消息的最佳做法是什么?我有一些想法,但不知道要走什么路线:
- 每个客户端连接到每个websocket节点。
- 服务器发布消息到所有其他节点以及
- 使用数据库节点
如果新节点连接到云这两个第一和第二选项是不是很可扩展性之间的消息同步。第三个选项会导致一些延迟,因为有必要检查来自其他节点的消息是否在数据库循环中。
有没有其他的选择来处理这种情况?感谢您的答案!