L'attuale modello prevede :Originariamente inviato da billiejoex
Tieni cmq il thread aggiornato che sono curioso. =)
per ogni richiesta di connessione a buon fine (login) vengono creati :
due processi server (RS - WS), e una coda di messaggi.
RS ha il compito di ricevere i comandi dal client;
WS ha il compito di inviare i messaggi (privati o pubblici) al client.
La comunicazione avviene tramite socket TCP.
WS è in loop sulla coda dei messaggi associata, quando c'è un messaggio lo invia tramite socket al client.
RS è in loop sul socket e interpretando il messaggio sa se si tratta di un messaggio privato o pubblico.
Se è un messaggio pubblico, lo pone in tutte le code relative ai client connessi.
Se è un messaggio privato lo pone solo nella coda relativa al ricevente.
La conoscenza delle code da parte di un processo, è ottenuta tramite una struttura dati aggiornata dai processi ogni volta che una fase di login ha esito positivo.
In questo scenario, la ricezione o l'invio dei messaggi da parte di un client, non blocca la ricezione o l'invio di messaggi relativi ad altri client.
Fammi sapere che ne pensi!

Rispondi quotando