Vuoi che il processo sia basato su client o server? In altre parole, vuoi inviare nuovi dati ai client non appena sono disponibili, o preferiresti che i client richiedano nuovi dati ogni volta che lo ritengono opportuno, anche se potrebbe non essere una volta/secondo? Qual è la probabilità che il cliente sia in grado di restare in attesa di una risposta? Anche se si prevede che gli eventi si verifichino una volta al secondo, quanto tempo ci vuole tra una richiesta da un client e il ritorno dal server? Se è più lungo di un secondo, mi aspetto che ti spinga a spingere gli eventi ai clienti, anche se, al contrario, mi aspetto che il polling sia a posto. Se la risposta richiede più tempo dell'intervallo, significa che lo streaming è essenzialmente in ogni caso, dal momento che c'è un nuovo evento pronto al momento in cui il client riceve l'ultimo, in modo che il client possa eseguire il polling in modo continuo e ricevere sempre gli eventi, in questo caso lo streaming i dati sarebbero effettivamente più leggeri, dal momento che stai rimuovendo il sovraccarico di connessione/negoziazione dal processo.
Sospetto che il carico del server sia più elevato per una sottoscrizione basata su client (pull), anziché una configurazione di streaming, poiché il client dovrebbe rinegoziare la connessione ogni volta, invece di lasciare una connessione aperta, ma ogni connessione aperta in un modello di streaming richiederebbe anche le risorse del server. Dipende da quale sia il trade-off tra l'aggressività del processo di negoziazione e la quantità di memoria/elaborazione richiesta per ciascuna connessione aperta. Non sono esperto, però, quindi potrebbero esserci altri fattori.
UPDATE: This guy parla dei compromessi tra polling lungo e streaming e sembra dire che con HTTP/1.1, il processo di rinegoziazione della connessione è banale, quindi non è tanto un problema.
Ehi rwmnau, il link che hai fornito è illuminante. Per rispondere alle tue domande, vorrei inviare i dati agli utenti non appena disponibili. – jcee14
Se stai cercando di inviare i dati agli utenti il prima possibile, allora penso che la scelta debba essere lo streaming, dal momento che manterrà una connessione basata su push. Con una configurazione pull, stai aspettando che i clienti chiedano, ma con la spinta, avranno i dati non appena li darai a loro. Fammi sapere cosa finisci a raccogliere e perché! – SqlRyan