WebSockets与长轮询与TCP可伸缩性/易用性

时间:2010-07-29 17:12:27

标签: java websocket long-polling

我正在编写一个基于Java的移动网络应用程序的后端,我想知道,就可扩展性和易用性而言,使用WebSockets与彗星等长轮询解决方案相关的优缺点是什么。另一种选择也是使用TCP实现我自己的解决方案。从我所看到的情况来看,您似乎需要在专用服务器上运行长轮询解决方案,因为当您开始处理大量用户时,它们在Tomcat / Jetty中运行不佳。 WebSockets听起来更好。使用Comes上的Websockets是否有任何缺点,或者我应该使用TCP连接来使用我自己的解决方案?我正在寻找使用最少流量的选项。

1 个答案:

答案 0 :(得分:5)

我想这取决于你的用例和学习新东西的容忍度,但是,当然,沿着使用WebSocket API进行通信甚至SSE的路径,比传统的长轮询/ Comet解决方案更好 - 您提到的一个 - 可扩展性,但也用于带宽利用率和延迟。重要的是还要理解WebSocket是Web上的TCP到桌面的内容,例如:一个插座。在桌面解决方案中,您不必对TCP进行编码,您使用支持传输协议(如STOMP或TCP上的XMPP)的客户端库。使用WebSocket时,您也会这样做,选择要与之通信的服务器。 XMPP服务器和XMPP客户端库,通过WebSockets与服务器通信。

您可以看到我们的示例here,我们有docs you can read here

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