Ho un singolo server con diversi client. Voglio inviare messaggi a un determinato cliente in un dato momento. I client non devono eseguire il polling sul server. quali sono i buoni schemi e le pratiche per risolvere questo problema?
Ho un singolo server con diversi client. Voglio inviare messaggi a un determinato cliente in un dato momento. I client non devono eseguire il polling sul server. quali sono i buoni schemi e le pratiche per risolvere questo problema?
Puoi utilizzare una tecnica che si riferisce spesso al polling lungo o alla cometa , che consente di implementare un sistema di aggiornamento / aggiornamento basato su "push" .
Il principio è piuttosto semplice:
In questo modo i client non eseguono regolarmente il polling. Tuttavia, ciò implica che un numero significativo di connessioni potrebbe essere tenuto in vita in un dato momento, quindi assicurati di aver capito le implicazioni di questo approccio per il tuo server.
Quindi, il principio di base rimane lo stesso indipendentemente dalla piattaforma: finché puoi inviare una richiesta HTTP e attendere la risposta in modo sincrono o asincrono, hai un modo per implementare il polling lungo.
Con la maggior parte dei linguaggi di programmazione destinati allo sviluppo di soluzioni desktop (o "pesanti"), di solito si ricorre ai soliti strumenti di rete: socket.
Se stiamo parlando di un ricco web-client per creare una soluzione basata su browser, hai la possibilità di:
XMLHttpRequest
(il server risponderà solo una volta che avrà qualcosa da rispedire, in cui indica che il client riavvierà un'altra connessione o userà una di riserva se ne aprisse di più per assicurarsi che ci siano sempre più canali aperti a portata di mano), <script>
che eseguono una query su un URL inviando un payload incluso in una chiamata alla funzione definita nel contesto del client (vedere JSONP ), WebSocket
introdotta con HTML5 , Fai attenzione che, come spesso accade con i web tech, il supporto di più browser richiederà test approfonditi e potresti essere obbligato a utilizzare una combinazione delle tecniche sopra indicate se scegli come target le quote di mercato dei browser ostili ...
Leggi altre domande sui tag http internet client-server