Ich bin dabei, eine Website zu entwickeln, die nahezu Echtzeit-Chat bietet. Ich weiß, dass es mit xmpp- oder Websocket-Protokollen implementiert werden kann. Ich weiß auch, dass das xmpp-Protokoll 1999 entwickelt wurde, und ich denke, es sollte heutzutage ausgereift sein. Andererseits wurde das Websocket-Protokoll 2011 entwickelt.
- Was brauchte Websocket, wenn xmpp gut mit Echtzeitgesprächen umgehen konnte?
- Was sind die Hauptunterschiede zwischen den beiden Protokollen?
- Und wann sollte ich einen von ihnen dem anderen vorziehen?
Antworten:
Die kurze Antwort lautet "beides".
XMPP ist ein Satz von Anwendungsprotokollen für Echtzeit-Chats (und viele andere Dinge). Es muss dann irgendwie über das Netzwerk transportiert werden, sodass Sie eine Transportbindung benötigen. Es gibt drei Haupttransportbindungen für XMPP -
Wenn Sie also eine Chat-Anwendung in einem Browser entwickeln, wählen Sie XMPP als Anwendungsprotokoll und verwenden Websockets (in einem modernen Browser) oder BOSH (in einem älteren Browser) als Netzwerktransport. Wenn Sie eine XMPP-Bibliothek für Javascript wie Stanza.io ( https://github.com/otalk/stanza.io ) verwenden, wird beide unterstützt, und Sie denken nur an 'XMPP' und nicht an die Transportschicht. anders als beim Setup, wenn Sie angeben müssen, zu welchem Endpunkt eine Verbindung hergestellt werden soll.
(Sie können nicht "nur Websockets" für den Chat verwenden - Sie können Websockets ohne XMPP verwenden. Dies bedeutet jedoch, dass Sie Ihr eigenes Protokoll auf Anwendungsebene für den Chat erfinden und die Chancen stehen, dass Sie sparen viel Zeit und Kopfschmerzen, indem Sie die Arbeit nutzen, die bereits in das Schreiben einer mit nützlichen Eigenschaften (Sicherheit, Identität, Erweiterbarkeit usw.) investiert wurde und für die es vorhandene Bibliotheken und Server gibt, indem Sie stattdessen XMPP verwenden.)
quelle