如果您不编写 Web 应用程序,并且您的客户端不是浏览器,那么 Web 套接字相对于常规套接字的优势是什么?

What is the advantage of the web sockets over regular sockets if you are not writing a web app, and your clients won't be a browser?

本文关键字:套接字 Web 常规 相对于 是什么 那么 应用程序 如果 客户端 浏览器      更新时间:2023-10-16

stackoverflow上的Websockets和套接字之间的差异有一些文献。我要理解的是,为什么我要在普通插座上选择Web插座,如果我正在编写普通客户端/服务器应用程序,而服务器不一定是Web服务器,而连接到服务器的客户端是本机C 或Java客户端。

如果您必须处理浏览器,WebSockets具有巨大的优势,如果我不必支持浏览器,我仍然应该考虑使用WebSockets吗?

编辑:

更明确我要问的内容:是否较早地存在WebSockets,替换https://en.wikipedia.org/wiki/unix_domain_sockets替换使用Unix domain socket的Unix工具中,或在IPC上下文中使用插座的任何其他上下文。另一种情况是,如果您要编写IRC服务器,您是否适合使用Websocket代替普通的TCP套接字,在这种情况下,是否有任何理由远离Websocket?

如果您将WebSocket与TCP进行比较,Websockets具有许多优点:

  • Unicode支持
  • 面向数据报的交互
  • HTTP基于连接的防火墙遍历

然而,这种比较有点是错误的二分法。如果您不使用Websocket,则不会被迫直接在TCP上构建。那里还有许多其他协议(太多了),并且有许多出色的实现。

也许HTTP本身非常适合您的应用程序。或者也许是XMPP或Google协议缓冲区或其他内容。这完全取决于您的申请需要进行的交流。

在选择协议(或很少设计自己的设计)之前,您需要弄清楚您的应用程序需要进行哪种通信。然后,您可以评估不同的协议并确定哪种问题适合您的问题。

也就是说,如今的大部分发展似乎都集中在网络上。即使该应用程序没有任何固有的网络-Y,许多人现在选择HTTP作为其协议。在这一点上,已经进行了大量的工作来标准化HTTP作为各种问题的解决方案,以及构建图书馆以促进这种用途。任何您要建造的东西都有可能是一个不错的选择(同样,我不知道您正在建造什么,所以这只是一个猜测)。