Websocket 是否使用初始 HTTP 用于握手的相同 TCP 连接?
Does Websocket use the same TCP connection that was used by the initial HTTP for the handshake?
我想设置一个 Node.js 服务集群,在它们前面有一个负载均衡器(由于某些原因不能有粘性会话)。
假设我有两个节点,客户端(例如浏览器,使用 socket.io)发送 wss:// 请求,首先节点从 LB 获取它,然后发送回客户端 'HTTP/1.1 101 Web Socket Protocol Handshake'响应。
客户端和服务器之后是否会使用与初始客户端请求相同的 TCP 连接来发送帧?或者将建立一个新的 TCP 连接,该连接可能会被 LB 转发到第二个节点?
在使用 socket.io 的情况下,它可能仍会回退并实际上在建立 WebSocket 连接之前通过 http 发送长轮询以提高性能。这些轮询请求是否可以在不同的后端节点上结束?
是的,WebSockets 使用与 HTTP 握手期间相同的 TCP/IP 连接。
是的,长轮询可能会路由到不同的节点,除非专门设置以避免这样做(我不建议这样做,因为它表示架构中的扩展弱点)。
我想设置一个 Node.js 服务集群,在它们前面有一个负载均衡器(由于某些原因不能有粘性会话)。
假设我有两个节点,客户端(例如浏览器,使用 socket.io)发送 wss:// 请求,首先节点从 LB 获取它,然后发送回客户端 'HTTP/1.1 101 Web Socket Protocol Handshake'响应。
客户端和服务器之后是否会使用与初始客户端请求相同的 TCP 连接来发送帧?或者将建立一个新的 TCP 连接,该连接可能会被 LB 转发到第二个节点?
在使用 socket.io 的情况下,它可能仍会回退并实际上在建立 WebSocket 连接之前通过 http 发送长轮询以提高性能。这些轮询请求是否可以在不同的后端节点上结束?
是的,WebSockets 使用与 HTTP 握手期间相同的 TCP/IP 连接。
是的,长轮询可能会路由到不同的节点,除非专门设置以避免这样做(我不建议这样做,因为它表示架构中的扩展弱点)。