My scenario is a chat-room application that runs on Jetty WebSockets servers fronted by HAProxy or some such load balancer.
In a typical chat-room like application, when participants in a chat room are load balanced across several servers, I am trying to understand how the WebSockets application disseminates the chat message from one participant to other chat room participants in the chat-room who may be connected to other WebSocket servers in the cluster. It appears like JDBC session-clustering, for example, cannot work here as this does nothing for this WebSocket issue (
https://dev.eclipse.org/mhonarc/lists/jetty-users/msg03161.html), though it appears like session clustering can help in getting the identity of the server the other chat room participant is connected to currently.
Is my understanding correct? If so, what solutions exist to solve the WebSocket/chat-room problem I describe above? My temporary solution was to have each WS server that is load balanced by the HAProxy solution be connected to the other WS servers in the cluster other via WebSocket (or other technologies like RabbitMQ) and a simple messaging between them to achieve the chat message dissemination I need in the chat room application. Is this a correct way to do this? If not, what is a traditional way to achieve this?
If this information is pertinent, I am using Jetty 9.3.7.
Any insight is appreciated.
Thanks!