Skip to main content

Balancer that delegates requests to servers and problem with Websockets [Resolved]

Lets have an application that has real-time chat feature. The chat requires websockets in order to function real-time.

Now imagine we have "balancer" and 3 application servers. Instance of application run on every server.

The balancer delegates request to 1 of these 3 servers, for example based on traffic.

My question is, how to deal with websockets? Example:

1) User A logs into an applicition
2) Balancer delegates user A to server 1
3) Web socket is created for user A on server 1

4) User B logs into an applicition
5) Balancer delegates user B to server 3
6) Web socket is created for user B on server 3

7) User A wants to set message to user B
8) Instance of application on server 1 looks for web sockes for user B

Web sockets for user B exists on server 3, not on server 1.

How to deal with situation like this? Should it be treated on application level ( e.g some sync of app instances throught database/messages) or some configuration on "balancer" ?

Thanks for help.

Question Credit: trolkura
Question Reference
Asked August 20, 2018
Posted Under: Programming
1 Answers

Your Answer