Tcp WebSocket:它们是否共享连接?

Tcp WebSocket:它们是否共享连接?,tcp,websocket,Tcp,Websocket,如果我请求多个资源,它们是否共享连接?因此,如果我有这些要求: ws://someserver.com/path/somedata1 ws://someserver.com/path/somedata2 ws://somsserver.com/anotherpath/sometherdata 根据我目前阅读的内容,我必须创建3个WebSocket来从这些URL获取数据。我看到的所有示例都是打开连接,获取数据,然后关闭连接。但是,如果我创建了3个WebSocket,它们(在封面下)是否共享到s

如果我请求多个资源,它们是否共享连接?因此,如果我有这些要求:

  • ws://someserver.com/path/somedata1
  • ws://someserver.com/path/somedata2
  • ws://somsserver.com/anotherpath/sometherdata

根据我目前阅读的内容,我必须创建3个WebSocket来从这些URL获取数据。我看到的所有示例都是打开连接,获取数据,然后关闭连接。但是,如果我创建了3个WebSocket,它们(在封面下)是否共享到someserver.com的单个连接?或者它们是3个独立的连接?这意味着链接的每侧各有3个套接字,等等。

工作组正在讨论如何自动将WebSocket连接多路复用到同一台服务器,但没有支持此功能的现有实现,因此,如果打开三个WebSocket连接,您将在引擎盖下获得三个TCP套接字连接

但是,如果您同时控制客户端和服务器,那么您的应用程序可能就没有理由打开三个到不同URL的独立连接。只需打开一个连接,然后在应用程序级协议中指定所需的资源。此外,WebSocket与HTTP连接相比的一大优势是连接保持打开状态,并且是全双工双向和基于消息的。当前的WebSocket应用程序通常会选择来回发送JSON消息,但一旦建立了WebSocket连接,您就可以来回发送任何想要的消息(目前仅限于可以编码为UTF-8字符串的内容,但将来将支持原始二进制)


作为WebSocket连接一部分的URL实际上只是WebSocket握手的另一部分。如果服务器配置是将连接升级到WebSockets服务器的webserver,则可以使用URL选择要将连接传递到的WebSockets服务器。但是,如果您有一个原始WebSockets服务器应答连接,那么URL只是握手中的另一段数据,服务器可以决定对URL执行任何操作。

如果您想确认@kanaka在其应答中所说的内容,您可以使用类似的方法来检查已建立的TCP连接。