Kha*_*aga 61 java xmpp real-time near-real-time websocket
我即将开发一个近乎实时聊天的网站.我知道它可以使用xmpp或websocket协议实现.我也知道xmpp协议是在1999年开发的,我想它现在应该是成熟的.另一方面,websocket协议已于2011年开发.
Kev*_*Kev 107
简短的回答是'两者'.
XMPP是一组用于进行实时聊天的应用程序协议(以及许多其他事情) - 然后它必须以某种方式通过网络传输,因此您需要传输绑定.XMPP有三种主要的传输绑定 -
因此,如果您在浏览器中开发聊天应用程序,则选择XMPP作为应用程序协议,并使用websockets(在现代浏览器中)或BOSH(在旧浏览器中)作为网络传输.如果您使用像Stanza.io(https://github.com/otalk/stanza.io)这样的Javascript的XMPP库,那么它将支持两者,您只需考虑'XMPP'而不是传输层,除了在设置时,你必须告诉它连接到哪个端点.
(您不能使用'just websockets'进行聊天 - 您可以使用没有XMPP的websockets,但这实际上意味着您正在发明自己的应用程序层协议进行聊天,并且您可能会节省多少钱通过利用已经用于创建具有有用属性(安全性,身份,可扩展性等)的工作的大量时间和麻烦,并通过转换XMPP为现有的库和服务器.)
Kum*_*ait 11
基本上,您将两种不同的东西相互比较.XMPP是一种应用程序协议,而WebSockets是一种传输协议.
我认为使用XMPP会为您节省大量时间.但是,您将失去以最适合您的方式实现功能的自由.如果您的应用程序仅使用一对一的消息传递和好友列表功能,而且未来将会添加明确的计划,那么WebSockets +将是一个可行的解决方案.另一方面,如果您的应用程序将受益于其他XMPP扩展(例如多方消息传递和点对点媒体会话),那么使用XMPP会更好,因为这样的功能需要花费大量时间来实现.