Domanda

Sto costruendo un'applicazione web che ha un feed in tempo reale (simile a newsfeed di Facebook) che voglio aggiornare tramite un meccanismo a lungo polling. Capisco che con Python, le mie scelte sono praticamente ad usare sia Stackless (edificio dal loro esempio WSGI cometa) o Cometd + ritorto. Purtroppo non c'è molto poco per quanto riguarda la documentazione queste opzioni e non riesco a trovare una buona informazione on-line sugli utenti in scala di produzione di una cometa su Python.

Qualcuno ha implementato con successo la cometa su Python in un sistema di produzione? Come avete fatto a farlo e dove posso trovare le risorse per implementare il mio?

È stato utile?

Soluzione

Vi consiglio si dovrebbe usare StreamHub Comet Server - la sua usato da un sacco di gente - personalmente utilizzo con un paio di siti Django corro. Avrete bisogno di scrivere un po 'di Java per gestire lo streaming - ho fatto questo utilizzando Jython . Il codice di front-end è un po 'di vero e proprio semplice Javascript a la:

StreamHub hub = new StreamHub();
hub.connect("http://myserver.com/");
hub.subscribe("newsfeed", function(sTopic, oData) { alert("new news item: " + oData.Title); });

La documentazione è abbastanza buono - ho avuto problemi simili, come si cerca di iniziare con i documenti sparsi su Cometd et al. Per un inizio che avevo letto Come iniziare con la cometa e StreamHub , scaricare e vedere come alcuni degli esempi lavoro e di riferimento la documentazione API se è necessario:

Altri suggerimenti

orbitava sembra come una bella soluzione. Non ho provato, però.


Aggiorna :. Le cose sono cambiate negli ultimi 2,5 anni

Ora abbiamo WebSockets in tutti i principali browser, ad eccezione di IE (naturalmente) e un paio di ottimi astrazioni su di esso, che forniscono molti metodi di emulare comunicazione in tempo reale.

Ecco un esempio completo di combinare Django, orbitava, e Twisted per creare in tempo reale (Comet) app: http://github.com/clemesha/hotdot utilizzando Python.

Ho tonnellate fatta di API che utilizzano contorto per cose del genere, la maggior parte dei quali sono disponibili sul mio github account.

La maggior parte sono sul lato client, ma slosh è un server che ho scritto per fare un buon mercato in tempo reale PubSub genere di cose. È scalabile in qualche modo orizzontale per legge, consentendo per la semplice replica flusso. Scrive sono un po 'diverso quando si tiene fede a HTTP semplice, ma ho spinto una discreta quantità attraverso di essa per una demo.

In caso contrario, si ha il pieno on-BOSH cui la maggior parte dei server di supporto XMPP e vi permetterà di separare l'distribuzione dei messaggi dal frontend web.

Non l'ho fatto, ma questo ragazzo ha e scrive un buon articolo su di esso, con esempi di Django e puntatori (che non ho controllato) ad altri framework.

l'orbita e le soluzioni Redis sono belle, ma non è più rilevante quando si ha qualcosa di simile al PubSubHubbub che Google ha rilasciato. Questo rende molto facile per essere l'editore o l'abbonato ad un dato mangime. http://code.google.com/p/pubsubhubbub/

Ecco un esempio che fa a lungo polling con gevent e Django .

Si utilizza greenlet -. Commutazione pila funzionalità da Stackless confezionato come un'estensione CPython

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