编程语言
首页 > 编程语言> > java – Xmpp与Websocket

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