首页 文章

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

提问于
浏览
4

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

1 回答

  • 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中 . 我们已经解决了这个问题,但是如果您计划构建自己的服务器,则必须为旧版浏览器创建一个后备解决方案 .

相关问题