我们有一个应用程序连接到服务器并每15秒发送一次位置。现在我们的客户要求升级"我们当前的TCP / IP连接到WebSocket。原因是他听说它使用的带宽更少,他希望将15秒减少到1秒。 (不是公开申请,所以电池耗尽不是真正的问题)
我已经做过一些研究和许多WebSockets与HTTP比较,但只有2或3次WebSocket与TCP / IP的比较。
我已经发现:
我的问题是:改变我们现有的代码并使用WebSockets而不是好的代码是值得的吗? TCP / IP套接字?
答案 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并使用其他协议的一些原因如下:
当您希望浏览器能够连接到您时(浏览器支持普通的http请求和webSocket连接 - 就是这样)。
当您特别想要webSocket提供的消息传递范例类型时,您还没有通过TCP使用的特定协议(换句话说,当webSocket使您无需实现自己的协议时)
当您想要连接到其他类型的客户端时,可以更轻松快速地使用webSocket连接,而不是其他协议或自定义协议。
当您尝试与Web服务器共享端口时。根据它们通过HTTP连接启动然后切换到webSocket协议的性质,webSockets可以在与HTTP服务器相同的端口上运行(与Web服务器共享)。
当您希望与http和WebSockets提供的代理和其他网络基础结构的互操作性时。