2009-12-04 6 views

Antwort

18

Wir haben noch nicht einen Standard für XMPP über WebSockets, dass die Server implementieren können, die vor der Client-Seite erforderlich sein wird, kann angemessen in Angriff genommen werden.

Der erste Schritt besteht darin, die WebSocket-Standardisierung abzuschließen. Es sieht so aus, als könnte dies in einer IETF HyBi-Arbeitsgruppe passieren, die zum Zeitpunkt der Abfassung noch nicht von der IESG genehmigt wurde. Es gab ein HyBi Birds-of-a-Feather (BoF) auf der IETF-Konferenz in Hiroshima vor ein paar Wochen (siehe meeting materials), was ziemlich gut ging.

Nachdem WebSockets eine stabile Referenz hat und sich zu beruhigen scheint, erstellt die XSF eine XEP, die XMPP an WebSockets bindet, vermutlich mit einer Zeilengruppe pro WebSocket-Frame.

Bearbeiten: Jack Moffitt hat eine IETF Internet-Draft mit einem ersten Durchlauf bei einem Protokoll geschrieben, das verwendet werden kann. WARNUNG. Dies wird sich wahrscheinlich noch drastisch ändern. Implementiere es nur, wenn du bereit bist, es später komplett zu entfernen. WARNUNG.

3

Es ist ein Buch, in kürze, die dieses Thema abdeckt ...

Professional XMPP with JavaScript and jQuery alt text http://ecx.images-amazon.com/images/I/51B7VAHw8OL._SL500_AA240_.jpg

Aber ich nehme an, Sie wollen nicht für das Buch warten. Also sehen Sie sich the Jack Moffitt's presentation from JSConf an. Ich habe es heute Morgen gesehen. (Jack Moffitt ist der Autor des Buches, das mit oben verbunden ist.)

Die betroffene Bibliothek (JavaScript- und C-Implementierungen) ist Strophe.

Dies ist ein sehr fruchtbares Gebiet der Exploration, aber sehr roh. Wir werden bald mehr sehen. WebSockets kommen mit HTML5, ist das richtig?

+0

In der Tat sind WebSockets Teil von HTML5; Google Chrome hat sie implementiert –

24

Es gibt mehrere Lösungen (keiner von ihnen sind perfekt)

1. Verwenden Kaazing.

Sie unterstützen es bereits. Es ist Open Source, aber sie haben eine Art von dual license, also überprüfen Sie besser, ob Sie für Ihr Projekt verwenden können oder nicht.

2. Kombinieren js.io und APE (Ajax Push-Motor)

APE ist ein Comet Rahmen, aber sie begannen vor kurzem Websockets unterstützen. Auf ihrer Website ("APE als Proxy" -Abschnitt), sagen sie, dass sie js.io-Bibliotheken ausführen können, die xmpp.js enthält, so dass sie kombinieren können.

3.Verwenden Sie Caucho

Es ist ein Java-basiertes Framework ähnlich wie APE, die One-Stop-Shop Comet-Lösung bietet, und sie scheinen beide XMPP und WebSockets

4 zu unterstützen Bitten Sie das Strophe-Team, WebSocket zu unterstützen.

Strophe macht XMPP über BOSH (Bidirektionale Streams über synchrone HTTP), aber es gibt auch a discussion about supporting WebSockets.

Jack Moffitt (der Hauptentwickler und der Autor des oben erwähnten Buches) scheint sich für WebSockets zu interessieren, aber wir müssen mehr begründen, warum sie WebSocket über BOSH unterstützen müssen. Wenn Sie gute Antworten haben, treten Sie bitte dem Profil bei.

Ich versuchte gerade ihre xmpp,bosh,strophe echobot example, die gut funktionierte. Sie können es auch ausprobieren, um zu sehen, ob es Ihren Anforderungen entspricht oder nicht.

Für # 2 und # 3, sie sagen, dass beide XMPP und Websockets unterstützen, aber nicht sicher, ob sie zusammenarbeiten.

Welche Art von Anwendung Sie über XMPP & WebSockets für denken?

Die folgenden sind Vorschläge für Alternativen.

  • Wenn Sie die Präsenz wollen, Chat, Chat-Raum gleichwertige Funktionalität, können Sie Wave-Gadget oder Roboter machen, setzen dann außen mit Wave Embed API (toter Link, für historische Zwecke gehalten). Wave ist eigentlich auf XMPP aufgebaut.
  • Wenn Sie nur nach sehr niedrigen Latenz Messaging-Funktion suchen, könnten Sie .
  • Wenn Sie nach viel einfacheren Nachrichten-Streaming suchen, können Sie einfach pipe in/out unix file as I demonstrated here.

Ich habe die meisten der oben genannten Informationen, wenn ich schrieb this blog post. Wenn Sie den Kommentarbereich von Zeit zu Zeit überprüfen, werde ich das Update veröffentlichen, sobald ich andere Lösungen finde.

+1

> Welche Art von Anwendung Sie über die Verwendung von XMPP & WebSockets für denken? Ich hatte nicht unbedingt etwas bestimmtes im Sinn; Im Allgemeinen würde XMPP over WebSockets natürlich ein Framework und ein Protokoll für echte ereignisbasierte Webanwendungen bereitstellen, was die Benutzerfreundlichkeit für z.: * Web-basierte E-Mail * Web-basierte Zusammenarbeit * Echtzeit-Datensynchronisation * Echtzeit-Updates * Browser Die Kombination dieser beiden Technologien des Browser-Kommunikation sowie leistungsfähige Client-Seite JavaScript Motoren, scheinen eine Menge Möglichkeiten für moderne Web-Apps zu eröffnen. –

+1

Strophe unterstützt nun Websockets. Ich habe die Möglichkeit, entweder Websocket oder BOSH für die Verbindung zu verwenden. – Robin

0

Ich bin mir nicht sicher, warum Sie speziell nach einer WebSocket-Lösung fragen, weil die XMPP-Server dies zuerst unterstützen müssten.

Allerdings gibt es mehrere XMPP JavaScript-Bibliotheken zur Verfügung (soweit ich sehen, dass sie alle BOSH Methode):

Diese Beispiele wurden aus dem XMPP Website genommen, die Open-Source-Implementierungen des XMPP-Protokolls aufgeführt sind.

+0

Links sind generell nicht als Antworten akzeptabel. Formulieren Sie eine spezifische Antwort in Ihren eigenen Worten und verwenden Sie den Link als Referenz. Erwähnen Sie mich nach dem Bearbeiten, damit ich meinen Downvote entfernen kann. – markus

+1

@markus: Danke für die Anmerkungen. Ich habe die Antwort behoben. – MKroehnert

+0

Frage fragt speziell nach JavaScript XMPP-Bibliotheken, die WebSockets und nicht BOSH unterstützen. –

0

Ich bin nicht sicher, JS auf Browser-Seite kann Websocket-Protokoll allein behandeln, da es meist auf Browser-API angewiesen. Nur wenige Browser-Unterstützung websocket: Chrome, Safari5, vielleicht Firefox4. Es gibt viele Problemumgehungen basierend auf flash/as3 (dann kommuniziert Ihre js mit Flash-Code) die Hauptbeschränkung ist, dass Flash keine sichere Verbindung unterstützt (schade).

BWT, können Sie überprüfen, this websocket implem Sie bieten OpenSource-Java-WebSocket Client-Bibliothek und scheint mit XMPP Zeug zu tun und wenn Sie durchsuchen die Repositories finden Sie grundlegende As3 WebSocket-Implementierung.

3

JSJaC implementiert XMPP Over Websockets. Es ist bekannt, mit mehreren Back-End-Implementierungen zu arbeiten:

  • Knoten-xmpp-bosh - RFC6455 und arbeitet ohne Probleme seit 0.6.1 unterstützt, ist es auch transparent verwendet STARTTLS ggf.
  • WXG - unterstützt RFC6455 und funktioniert ohne Probleme, aber kann keine Verbindung zu Servern STARTTLS erforderlich (Original wxg hat einige Probleme, die von Gordin behoben wurden).
  • ejabberd-WebSockets - - nicht Unterstützung RFC6455 daher ist es nicht funktioniert, ist es die Anpassung RFC6455 unterstützen sollte für jedermann ganz einfach sein Erlang wissen
  • Openfire (einige Arbeit in Fortschritte auf Github zu finden) inoffizielle Plugin ist vorhanden, aber es fehlt Unterstützung für RFC6455 daher ist es nicht
  • Apache Vysper funktioniert - nicht nicht RFC6455 unterstützen daher nicht
  • Tigase funktioniert - keine bekannten arbeiten an WebSocket Unterstützung
  • MongooseIM - eine Gabel von Ejabberd mit Unterstützung für XMPP über Websockets.
Verwandte Themen