java – Xmpp与Websocket
作者:互联网
我即将开发一个近乎实时聊天的网站.我知道它可以使用xmpp或websocket协议来实现.我也知道xmpp协议是在1999年开发的,我想它现在应该是成熟的.另一方面,websocket协议已于2011年开发.
>如果xmpp在处理实时对话方面表现良好,那对websocket的需求是什么?
>两种协议之间的主要区别是什么?
>我何时应该选择其中一个而不是另一个?
解决方法:
简短的回答是’两者’.
XMPP是一组用于进行实时聊天的应用程序协议(以及许多其他事情) – 然后它必须以某种方式通过网络传输,因此您需要传输绑定. XMPP有三种主要的传输绑定 –
> TCP / IP,这是人们通常在Internet上使用设备上的本机客户端
> HTTP(称为BOSH),这是传统上在浏览器中使用XMPP时使用的(因为浏览器中的Javascript应用程序无法使用TCP-IP)
> Websockets,它是在现代浏览器中执行XMPP时使用的.
因此,如果您在浏览器中开发聊天应用程序,则选择XMPP作为应用程序协议,并使用websockets(在现代浏览器中)或BOSH(在旧浏览器中)作为网络传输.如果您使用像Stanza.io(https://github.com/otalk/stanza.io)这样的Javascript的XMPP库,那么它将支持两者并且您将只考虑’XMPP’而不是传输层,除了在设置时您必须告诉它什么端点连接到.
(您不能使用’just websockets’进行聊天 – 您可以使用没有XMPP的websockets,但这实际上意味着您正在发明自己的应用程序层协议进行聊天,并且您可能会节省多少钱通过利用已经用于创建具有有用属性(安全性,身份,可扩展性等)的工作的大量时间和麻烦,并通过转换XMPP为现有的库和服务器.)
标签:java,websocket,xmpp,real-time,near-real-time 来源: https://codeday.me/bug/20190930/1834476.html