Consente un'applicazione con funzionalità di chat in tempo reale. La chat richiede web socket per poter funzionare in tempo reale.
Ora immaginiamo di avere un "server di bilanciamento" e 3 server di applicazioni. L'istanza dell'applicazione viene eseguita su ogni server.
Il bilanciatore delega la richiesta a 1 di questi 3 server, ad esempio in base al traffico.
La mia domanda è, come gestire le web socket? Esempio:
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
I socket Web per l'utente B esistono sul server 3, non sul server 1.
Come affrontare una situazione come questa? Dovrebbe essere trattato a livello di applicazione (ad esempio qualche sincronizzazione delle istanze di app attraverso database / messaggi) o qualche configurazione su "bilanciatore"?
Grazie per l'aiuto.