优势TCP / IP上的WebSockets

时间:2015-08-03 07:42:05

标签: sockets tcp websocket

我们有一个应用程序连接到服务器并每15秒发送一次位置。现在我们的客户要求升级"我们当前的TCP / IP连接到WebSocket。原因是他听说它使用的带宽更少,他希望将15秒减少到1秒。 (不是公开申请,所以电池耗尽不是真正的问题)

我已经做过一些研究和许多WebSockets与HTTP比较,但只有2或3次WebSocket与TCP / IP的比较。

我已经发现:

  1. WebSockets基本上与TCP / IP相同,但TCP / IP在比WebSockets更低的层上工作。
  2. WebSockets可能会使用更少的带宽,因为它的协议可能比我们当前的协议更有效。
  3. WebSockets在服务器端使用更多资源。
  4. 我的问题是:改变我们现有的代码并使用WebSockets而不是好的代码是值得的吗? TCP / IP套接字?

1 个答案:

答案 0 :(得分:13)

如您所知,webSocket IS构建于TCP / IP连接之上。它是建立在TCP之上的特定协议。

  

我的问题是:改变现有代码和制作是否值得   使用WebSockets而不是好的'TCP / IP套接字?

如果您的代码已经与TCP套接字一起使用,并且您不需要与浏览器客户端进行互操作,并且您不需要内置到webSockets中的任何特定功能,那么就没有理由重写功能完善的TCP套接字代码。

  

我们有一个连接到服务器并将其发送到位置的应用程序   每15秒一次。现在我们的客户要求“升级”我们的电流   TCP / IP连接到WebSocket。原因是他听到了   使用较少的带宽,他希望将15秒减少到1   第二。 (不是公共应用,所以电池耗尽不是真的   问题)

webSocket是否比现有的TCP连接更高带宽效率完全取决于您现在在TCP连接上运行的协议。如果您现有的协议效率非常低,那么无论是webSocket还是其他东西,您都可以从使用更高效的协议中受益。如果切换到webSocket会减少15秒到1秒之间的任何事情,我会感到惊讶,除非你现在拥有的实现效率非常低。

如果我们能够准确了解您现有的代码/协议是如何工作的,那么我们只能对两种协议之间的比较进行进一步评论。如果您现在拥有的东西非常糟糕,那么切换到专业设计的系统(如webSockets)可能对您有所帮助,但webSockets中没有任何内在功能可以使它们比其他一些设计良好的协议更有效。

在普通TCP连接上使用webSocket并使用其他协议的一些原因如下:

  1. 当您希望浏览器能够连接到您时(浏览器支持普通的http请求和webSocket连接 - 就是这样)。

  2. 当您特别想要webSocket提供的消息传递范例类型时,您还没有通过TCP使用的特定协议(换句话说,当webSocket使您无需实现自己的协议时)

  3. 当您想要连接到其他类型的客户端时,可以更轻松快速地使用webSocket连接,而不是其他协议或自定义协议。

  4. 当您尝试与Web服务器共享端口时。根据它们通过HTTP连接启动然后切换到webSocket协议的性质,webSockets可以在与HTTP服务器相同的端口上运行(与Web服务器共享)。

  5. 当您希望与http和WebSockets提供的代理和其他网络基础结构的互操作性时。