La réponse courte est «les deux».
XMPP est un ensemble de protocoles d'application pour le chat en temps réel (et bien d'autres choses d'ailleurs) - il doit ensuite être transporté sur le réseau d'une manière ou d'une autre, vous avez donc besoin d'une liaison de transport. Il existe trois principales liaisons de transport pour XMPP -
- TCP / IP, qui est ce que l'on utilise généralement sur Internet avec des clients natifs sur les appareils
- HTTP (appelé BOSH), qui est ce que l'on a traditionnellement utilisé lors de l'utilisation de XMPP dans le navigateur (car TCP-IP n'est pas disponible pour les applications Javascript dans le navigateur)
- Websockets, qui est celui que l'on utilise pour faire XMPP dans un navigateur moderne.
Donc, si vous développez une application de chat dans un navigateur, vous choisiriez XMPP comme protocole d'application et vous utiliseriez des websockets (dans un navigateur moderne) ou BOSH (dans un navigateur plus ancien) comme transport réseau. Si vous utilisez une bibliothèque XMPP pour Javascript comme Stanza.io ( https://github.com/otalk/stanza.io ), elle prendra en charge les deux et vous ne penserez qu'à 'XMPP' plutôt qu'à la couche de transport, autre que lors de la configuration lorsque vous devez lui indiquer à quel point de terminaison se connecter.
(Vous ne pouvez pas utiliser `` juste des websockets '' pour le chat - vous pouvez utiliser des websockets sans XMPP, mais ce que cela signifie vraiment, c'est que vous inventez votre propre protocole de couche application pour le chat, et les chances sont que vous allez économiser beaucoup de temps et de maux de tête en profitant du travail qui a déjà été fait pour en écrire un avec des propriétés utiles (sécurité, identité, extensibilité, etc.) et pour lequel il existe des bibliothèques et des serveurs existants en passant à XMPP à la place.)