Je suis sur le point de développer un site Web proposant un chat en temps quasi réel. Je sais qu'il peut être implémenté en utilisant les protocoles xmpp ou websocket. Je sais aussi que le protocole xmpp a été développé en 1999, et je suppose qu'il devrait être mûr de nos jours. Par contre, le protocole websocket a été développé en 2011.
- Quel était le besoin de websocket si xmpp était efficace pour gérer les conversations en temps réel?
- Quelles sont les principales différences entre les 2 protocoles?
- Et quand devrais-je choisir l'un d'eux plutôt que l'autre?
Réponses:
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 -
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.)
la source