Echtzeit-server-push mit Sockel IO (oder Strophe.js), XMPP und Django

Habe ich ein paar von Android-und iOS-native mobile Anwendung, die ich geschrieben habe, die direkt eine Verbindung zu einem XMPP-server, die ich Gastgeber. Sie push-und pull-Echtzeit-Daten über XMPP. Ich benutze auch einige der XMPP XEP-Erweiterungen. Für andere Vorgänge, ich habe eine django-Anwendung auf dem gleichen server ausgeführt, die alle mobilen Anwendungen verbrauchen über eine HTTP-REST-Schnittstelle. Ich verwende Sellerie und Redis für die django-Seite, um einige Vorgänge asynchron (wie große Batch schreibt mit meiner db).

Das alles funktioniert schön und gut. Yay.

Aber jetzt will ich schreiben, ein web-front-end-all dies, so dass ich begann die Erforschung mein Optionen und gut - es gibt so viele Möglichkeiten, um die Haut der Katze, die ich testen wollte, mit dem, SO die Gemeinde.

Die Idee, eine js-Bibliothek, das gibt mir eine einheitliche API für socket-Kommunikation (ich.e versuchen, verschiedene Implementierungen von web sockets oder fallen zurück in den flash -) gefällt mir, also warum ich erwähnen, Socket IO. Die Idee, dass ein nodejs server, naja, nicht so viel (der eine mehr, was zu lernen), aber wenn ich muss, ich auf jeden Fall. Ich weiß, dass einige Leute benutzen gevent als Ersatz für den node-server. Andere, entscheiden, schreiben einen kleine nodejs denen Sie eine Verbindung herstellen, um den rest Ihres Stacks. Wahrscheinlich würde ich dies tun.

Weitere option ist der Einsatz eines js XMPP-Bibliothek wie Strophe was ich nicht denke, es hat einen flash-fallback. Außerdem würde ich brauchen, um Forschung, was bedeutet das für meinen server.

Habe ich gelesen, einige Stackoverflow-Antwort, wie Kometen-und django - also, warum es scheint, dass es mehrere Optionen.

Die Frage ist:

, Wenn ich den Vorteil von Socket-E /a-Verhalten (mit den fallbacks) und ich möchte die push-Echtzeit-Daten an den web-client (wird zugeführt, um den server über XMPP), und mit Django, was ist meine beste option?

Update: Der XMPP-server, den ich verwenden, ist ejabberd, die auch unterstützt BOSH. Ich merke, dass ich verwenden könnte, Strophe.js und damit meine Kommunikation gehen würde, über eine Art von long-polling http-Verbindung statt websockets. Soweit ich das beurteilen kann, gibt es einige XMPP über Websockets open-source-Bibliothek, aber AFAIK die community nicht so aktiv wie die SocketIO ein.

Update 2: Browsern, die ich brauche, um zu unterstützen nur moderne Browser. Ich denke, das bedeutet, dass Flash-fallback wird nicht so wichtig sein, das beugte mich zu strophe.js.

  • Es gibt socket.io-server-Implementierungen in othere Sprachen als js. Knoten ist nur der Referenz-server. Ich habe eine Steckdose.io-server mit go-Buchse.io, geschrieben in Go. Python hat TornadIO2, die verwendet tornado in seinem stack.
InformationsquelleAutor rburhum | 2012-04-28
Schreibe einen Kommentar