Domanda

sto valutando alcune opzioni per trasmettere i dati dal server al client per la mia applicazione web in tempo reale.

Ho implementato un polling based (ogni client invia richieste HTTP al server ogni 30 secondi.) Applicazione che in realtà non scala dopo 10 utenti sono in. Questa applicazione. è costruito utilizzando MySQL, PHP, HTML e jQuery.

Si prega di suggerire quali uno sarebbe meglio considerando i requisiti qui sotto - APE Vs node.js

  1. Dovrebbe essere in grado di gestire almeno 400 connessioni simultanee alla volta
  2. Server dovrebbe essere in grado di spingere i dati a tutti questi clienti.
  3. Clienti sarebbe l'invio attraverso i dati tra di loro.
È stato utile?

Soluzione

vi consiglio caldamente di dare un'occhiata alla Socket.IO . Si tratta di una soluzione completa per server push, che include sia libreria lato server (scritto in node.js) e la biblioteca JS cliente che è fatto in un modo cross browser. Non vedo alcun motivo per voi di implementare il proprio codice per fare ciò che è già fatto, di lavoro e di test.

L'unico caso che non sarà socket.IO manico è la tua terza domanda, ma che è comunque impossibile. Se ho capito bene, si vorrebbe due client di comunicare senza l'aiuto di server di terze parti? Non è possibile modificare HTTP in P2P, almeno non ora.

Se d'altra parte si intende comunicare due utenti tramite il server (fare qualcosa come un due persone chat privata) che è assolutamente fattibile utilizzando socket.io.

Altri suggerimenti

Anche se tutti stanno correndo verso node.js in questo momento, abbiamo fatto un'applicazione di chat basata su APE e siamo molto contenti.

APE offre quello che stai cercando per un bel "out of the box", in quanto si tratta di una combinazione di lato server JS e APE_JSF framework client che fornisce la funzionalità (e non solo) che si ottiene da socket.io.

In questo progetto maniglia ~ 9000 utenti simultanei con messaggi in tempo reale . Un server nginx è messo di fronte a APE per fornire sgonfiare / supporto gzip

Questa configurazione (senza nginx pure) non avrà alcun problema trattare con le vostre esigenze, anche su una macchina "non così high end".

Dal momento che si può spingere i dati a "un canale" o di un singolo utente, si dovrebbe essere in grado di realizzare esattamente quello che stai cercando con APE, da trasmissioni a messaggi diretti.

Se si utilizza Apache all'interno del vostro stack esistente allora, come già detto, non ci saranno problemi con il ridimensionamento voi utenti anche se si utilizza polling lungo invece di uno continuo. Soluzione potrebbe essere quella di utilizzare web server ad alte prestazioni, come nginx al fine di gestire molte connessioni simultanee.

In altre node.js mano è fatto per questo tipo di collegamento concorrenza e ci sono pacchetti, come socket.io , che può rendere la vita degli sviluppatori molto più facile in quanto offre vari tipi di opzioni di trasporto con soluzioni di ripiego e altre funzionalità utili.

Io lo consiglio vivamente scimmia per applicazioni su larga scala, il suo bene per applicazioni di chat, ma per quanto si avvia navigatore trasporto di dati di massa in questione del cliente per rallentare e cotta dopo un po '.

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