XMPP和HTML5 Websocket有何区别?

5
我们正在制作一个网站,尝试开发一个聊天应用程序。我们已经使用Comet构建了一个聊天应用程序,但由于速度因素,我们决定使用XMPP来构建另一个聊天应用程序。
然而,随着HTML5和新的Websockets技术的出现,我们是否应该放弃XMPP并尝试使用Websockets呢?
我的问题如下:
1. 我可以制作一个移动应用程序,并将其连接到我的服务器上的XMPP,是否有一种方法可以通过手机连接到基于Websockets的聊天应用程序?(例如,对于Android的Smack库,是否有类似于Websockets的应用程序?)
2. 如果使用旧浏览器访问基于Websockets的聊天应用程序,是否有后备选项?
3. 哪种技术的开销更大、速度更快或更好?
此外,可能会说XMPP是一种经过验证的技术,但它仍然需要许多库,例如Strophe.js和flXHR等。但是,HTML5不是为此类事情而构建的,没有任何外部库等吗?
谢谢。

1
XMPP是一种经过验证、测试和可靠的协议。没有问题。它非常轻量级(可以轻松处理一个服务器上数千个并发用户)。使用http://socket.io/编写node.js服务器可能是另一种选择,但对我来说感觉像是重复造轮子。 - Kevin
1
HTML5的WebSockets本身就是为此而构建的,而不是使用像strophe.js和flXHR等库。因此,这是真实的。 - Sankalp Singha
没问题。我会做几个快速的示例,看哪一个符合您的标准。 - Kevin
谢谢。那将是非常有帮助和深入的见解。 - Sankalp Singha
1个回答

13
XMPP维基百科页面有一个关于XMPP通过HTTP和WebSocket传输的部分。最后一段陈述如下:

WebSocket可能是实时消息更有效的传输方式,它是一种Web技术,提供单个TCP连接上的双向全双工通信渠道。已经存在使用WebSocket的XMPP实验性实现,而且在IETF上已经发布了一份(现已过期)Internet-Draft文档记录这种方法,但还未标准化。

WebSocket是一个消息协议,因此可以通过WebSocket实现XMPP。如果进一步采用WebSocket子协议,我们甚至可以看到对此的原生支持。但在此之前,WebSocket连接将简单地作为XMPP协议消息的低级传输。
所以,并不是“XMPP或WebSocket”的问题。如果XMPP能够很好地满足您的需求,那么我会寻找一个使用WebSocket(并具有适当的HTTP回退)提供XMPP支持的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接