2010-07-29 44 views
4

我正在为基于Java的移动Web应用程序编写后端,我想知道可扩展性和易用性是什么,使用WebSockets与像Comet这样的Long-Polling解决方案。另一种选择是使用TCP来实现我自己的解决方案。从我读过的内容看来,您似乎需要在专用服务器上运行Long-polling解决方案,因为在开始处理大量用户时,它们在Tomcat/Jetty中运行得并不顺利。 WebSockets听起来像它可以更好地扩展。在Comet上使用Websockets有什么不利之处,还是应该使用TCP连接来使用我自己的解决方案?我正在寻找使用最少流量的选项。WebSockets与长轮询与TCP可扩展性/易于使用

回答

5

我想这取决于你的用例和学习新事物的容忍度,但是肯定的是,沿着使用WebSocket API进行通信甚至SSE的路径将比传统的长轮询/ Comet解决方案更好原因 - 您提到的一个原因 - 可扩展性,还有带宽利用率和延迟。重要的是要明白,WebSocket是Web到桌面的TCP是什么,例如一个插座。在桌面解决方案中,您不必针对TCP进行编码,您可以使用支持STOMP或XMPP over TCP等传输协议的客户端库。您在使用WebSocket时也是这样,选择一台服务器与例如XMPP服务器和XMPP客户端库,以通过WebSockets与服务器进行通信。

你可以看到我们的例子here,我们有docs you can read here

需要注意的是浏览器采用HTML5 WebSocket--目前在Chrome和Safari中,即将推出FF和Opera。我们已经解决了这个问题,但是如果您计划构建自己的服务器,则必须为旧版浏览器创建回退解决方案。

+0

这个问题的外部引用现在是死链接。 – jfriend00 2016-01-13 16:14:30