我们正在制作一个网站,我们正在尝试开发一个聊天应用程序,我们已经使用Comet构建了一个,但是由于速度因素,我们决定在XMPP中制作一个。
然而,随着HTML5的存在和新的websockets技术的存在,我们是否应该离开XMPP并尝试使用websockets来代替?
我的问题是:
-
我可以做一个移动应用程序,并将其连接到我的服务器上的XMPP,是有一种方法可以通过电话连接到基于websockets的聊天应用程序?(例如用于android的Smack库,是否有类似的东西对于基于websockets的应用程序?
-
是否有一个备用选项说,如果这个人正在使用一个旧的浏览器对于基于websockets的聊天应用程序?
-
哪个开销更大,哪个技术更快更好?
也可以说XMPP是一种久经考验的技术,它仍然需要很多库,对吗?比如strophe。js, flXHR等等?但HTML5不就是为这种类型的东西而构建的吗?
认为,
XMPP维基百科页面有一节关于通过HTTP和WebSocket传输的XMPP。最后一段说:
WebSocket可能是一种更有效的实时消息传输方式,它是一种通过单个TCP连接提供双向、全双工通信通道的web技术。存在基于WebSocket的XMPP实验实现,并且在IETF上发布了一个(现已过期的)记录该方法的Internet-Draft,但尚未标准化。WebSocket是一个消息传递协议,因此XMPP可以在WebSocket上实现。如果WebSocket子协议得到进一步发展,我们甚至可以看到对此的本地支持。但在此之前,WebSocket连接将仅仅充当XMPP协议消息的低级传输。
所以,这不是一个"XMPP或WebSocket"的问题。如果XMPP很符合您的要求,那么我会寻找使用WebSockets(并具有适当的HTTP回退)并提供XMPP支持的解决方案。