Domanda

Di recente ho incontrato un paio di casi in cui un server potrebbe distribuire un flusso di eventi che contiene gli stessi dati esatti per tutti gli ascoltatori, come ad esempio una scatola 'recente attività'.

Mi venne in mente che è abbastanza strano e inefficiente per avere un server come Apache eseguire un'elaborazione filo e l'interrogazione del database per ogni flusso cometa singola contenente gli stessi dati.

Quello che vorrei fare per coloro globale (non per utente) flussi di è gestito un singolo thread che emette continuamente i dati, e un nuovo (verde) filo per ogni nuova richiesta che emette le intestazioni e poi 'fonde' nel thread principale .

E 'possibile per un thread per servire prese multiple, o per più client per ascoltare la stessa presa?

Un esempio

o = evento

       # threads received
|  a b # 3
o / /  # 3       -
|/_/
|      # 1
o  c   # 2       a, b
| /
o/     # 2       a, b
o      # 1       a, b, c
|      #                    connection b closed
o      # 1       a, c

fa qualcosa del genere esiste? Funzionerebbe? E 'possibile fare?

Disclaimer: non sono un esperto di server

.
È stato utile?

Soluzione

Scopri node.js - thread singolo, event driven server. Utilizza JavaScript come bonus.

Altri suggerimenti

Se si utilizza ASP.NET, il seguente post dovrebbe essere utile

http://beta.codeproject.com/KB/aspnet/CometAsync.aspx

Tra l'altro, è possibile implementare Comet per servire più di un client per thread, ma solo un thread per tutti i client non sembra abbastanza?

Si parla di "richieste web asincrone" applicati ai Comet, alcuni, come "Comet asincrono".

A mio parere questo approccio, così popolare in questi giorni, è profondamente sbagliata .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top