Scenario 1
Supponiamo, tanto per dire, che il server vada in cerca su ChatGpt delle risposte prima di restituirle
Allora il client A lancia una richiesta, il tuo server la identifica come id domanda =1 ed avvia il suo lavoro di ricerca della risposta in giro per il mondo, la connessione col client e' sempre 'in tiro', ed attendera' finche' arriva la risposta o finche un timeout fa desistere il client che chiudera' brutalmente la connessione
Quando il server avra' la risposta disponibile, che puo' essere anche dopo un'ora dalla richiesta id 1, se la connessione per id 1 e' ancora disponibile, allora la restituira'
Nel caso dopo un microsecondo dalla richiesta id 1 arrivasse un'altra richiesta dal client B, il server prendera' la seconda richiesta gli assegnera' id=2 e la mettera' in coda (perche' sta gia' serverndo la richiesta id 1)
Nel caso dopo un microsecondo dopo la richiesta id 2 arrivasse un'altra richiesta dal client C, il server prendera' la terza richiesta gli assegnera' id=3 e la mettera' in coda (perche' sta gia' serverndo la richiesta id 1)
Appena trovata (che puo' essere anche dopo un'ora) la risposta alla domanda id 1 il server la restituira' sulla connessione aperta dal client A e controllera' se ci sono altre richieste in coda, trovera' la richiesta id 2 ed id3, prendera' la piu' recente ed iniziera' la sua ricerca della risposta per id 2
E via di questo passo
Niente bisogno di timer
Scenario 2
Vuoi ottenere un sistema tipico di una chat, tanti client che sono collegati con un sistema centrale, il tuo server, da ogni client puoi voler scrivere ad un altro client o a tutti gli altri con un messaggio solo
In questo caso, se sono telefoni, inviare la richiesta da telefono a server non c'e' problema, il client si colleghera', spedira' il messaggio, e chiudera' la connessione col server, tanto non si dovra' attendere una risposta
Il problema e' come fare per restituire la risposta quando il server ce l'avra', che puo' essere un altro client che sta rispondendo al primo tre giorni dopo ad esempio
E qua non puoi usare una connessione tipo socket, dovresti tenerla sempre attiva e coi telefoni sta cosa e' poco fattibile
E li se vuoi comunicare da server/pc verso dispositivo remoto, a mio avviso c'e' solo Sms, Firebase, Mqtt
Scartando il primo per motivi di prestazioni (a volte un sms 'normale' arriva molto dopo l'invio) restano gli ultimi due
Ci sono molti esempi di chat sia Firebase che Mqtt sul forum, ti consiglierei di dare un'occhiata
Niente di sogno di timer
Non so se ho centrato gli esempi, volevo solo dire che sia col primo che col secondo non ci sarebbe bisogno di timer
Con questo non vorrei scoraggiarti dal realizzare un progetto che li utilizzi, ma volevo dire semplicemente che ci sono sistemi per non usarli, con benefici relativamente alle prestazioni dell'interno sistema (risposta inviata al singolo client esattamente appena e' disponibile)