1个端口如何同时监听http和websocket

How can 1 port listen to both http and websocket

你好,我在端口 80 上有一个 http 服务器 运行。现在我是套接字的新手,我知道我们可以升级同一端口上的连接并使两者在同一端口上工作.

现在我很困惑另一个客户会怎样。

考虑一下: 我向服务器发送了一个获取请求,请使用相同的 TCP/IP 将我的连接从 http 升级到 websocket。服务器响应 101。它升级了连接。到目前为止一切顺利。

现在端口 80 是一个 websocket 端口而不是 http。所以现在,socket.io 将维护连接和请求,而不是 express();

中的应用程序

所以当下一个客户端来到同一个端口 80 做一些与套接字无关的事情或任何事情时,http 机制将如何工作,因为连接现在已经是套接字了。

这里的情况如何。

Now the port 80 is a websocket port rather than http.

TCP 侦听器套接字与应用程序协议无关。它只是关于建立一个新的 TCP 连接。监听套接字上连应用程序数据都没有传输。

使用特定的应用程序协议(如 HTTP)或在应用程序协议之间切换(如从 HTTP 切换到 WebSocket),只会影响新建立(已接受)的连接,但不会影响侦听器套接字。这也意味着可以在不同的 TCP 连接上使用不同的应用程序协议,即使所有这些连接都源自单个 TCP 侦听器套接字。