RabbitMQ+;WebSocket聊天架构

RabbitMQ+;WebSocket聊天架构,websocket,rabbitmq,chat,message-queue,Websocket,Rabbitmq,Chat,Message Queue,我正在使用RabbitMQ和WebSockets开发一个聊天服务。这是我的架构: 一些意见: 我认为这种架构的主要缺点是,每个WebSocket客户端都会收到客户端a传递的消息的副本。如果客户端B未连接到此WebSocket,则消息将被忽略 负载平衡器B已启用粘性会话,因此客户端将始终重新连接到相同的WebSocket服务 聊天API实例的数量并不总是与WebSocket服务相同 使用Nginx实现负载均衡器 聊天API和WebSocket服务都是使用NodeJ实现的 客户端是Android

我正在使用RabbitMQ和WebSockets开发一个聊天服务。这是我的架构:

一些意见:

  • 我认为这种架构的主要缺点是,每个WebSocket客户端都会收到客户端a传递的消息的副本。如果客户端B未连接到此WebSocket,则消息将被忽略
  • 负载平衡器B已启用粘性会话,因此客户端将始终重新连接到相同的WebSocket服务
  • 聊天API实例的数量并不总是与WebSocket服务相同
  • 使用Nginx实现负载均衡器
  • 聊天API和WebSocket服务都是使用NodeJ实现的
  • 客户端是Android、iOS或Web应用程序

你们有什么改进的方法吗?

你们找到答案了吗?我也在考虑用Websocket和一个JMS提供者构建一个聊天应用程序,但我不知道这是一个好主意还是一个好做法。进展如何?