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 -
- TCP / IP, wie es normalerweise im Internet mit nativen Clients auf Geräten verwendet wird
- HTTP (BOSH genannt), wie es traditionell bei der Verwendung von XMPP im Browser verwendet wird (da TCP-IP für Javascript-Apps im Browser nicht verfügbar ist)
- Websockets, die verwendet werden, wenn XMPP in einem modernen Browser ausgeführt wird.
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.)