Domanda

Questa chat utilizza il "long polling" o lo "streaming http"?

http://go-mono.com/moonlight/chat.aspx

È stato utile?

Soluzione

Non è niente di così semplice.Utilizza http://www.mibbit.com/chat, che è un client IRC completo scritto in Javascript e Java.Blog su http://blog.mibbit.com/.

Modificare: Ecco la tua risposta.

La prima parte su cui ho lavorato sono state le comunicazioni tra browser e server.Questo viene fatto utilizzando 2 XMLHttpRequests.Il primo è semplicemente inviare dati dal browser al server.Utilizza il metodo keep-alive per ridurre al minimo le nuove connessioni.

Il secondo XHR è quello del “receive lazy polling”.Si connette al server e il server lo tiene aperto finché non ci sono messaggi disponibili o finché non scade un timeout.Anche questo è keep-alive, quindi la richiesta successiva passa attraverso la stessa connessione.

Ciò che ti ritroverai sono 2 connessioni tenute aperte al server, con pacchetti (json in questo caso) e alcune intestazioni http di tanto in tanto.Per assicurarmi che il server scalasse, ho scritto un server web personalizzato in Java utilizzando nio.Gestisce tutte le connessioni in un unico thread e, come ho detto, è scalabile fino a decine di migliaia di connessioni.

Se il client richiede una nuova connessione, invia una richiesta al server web, che poi si connette e avvia il proxy, ecc.Gestisce anche un server ident nel caso di connessioni IRC in modo che un server IRC possa identificare i singoli browser.Ho esaminato i framework esistenti ecc. Per fare questo genere di cose, ma ho apprezzato l'apprendimento di come funziona il tutto e ho pensato che il mio caso d'uso potrebbe essere sufficientemente specifico da essere in grado di ottimizzare più di quanto possano fare i framework generali.

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