如何正确启动与 Google Cloud Load Balancer 的 WebSocket 连接以避免连接超时关闭?

dad*_*off 7 websocket socket.io google-cloud-platform

使用 socket.io,我通过 GCLB 代理的 WebSocket 连接按照后端服务配置中定义的时间间隔关闭:

超时配置

显然如图所示,解决方法是一个不切实际的长超时时间,但为了正确起见,通过 socket.io(或其他地方,如果不是 socket.io 的问题)配置 WebSocket 连接以避免这些的正确方法是什么关闭?

根据 GCLB 日志关闭的原因是"backend_connection_closed_after_partial_response_sent".

正如 Cloud Load Balancer 文档中所述,我们似乎需要发送适当的升级响应,以便负载均衡器保持连接有效。

当 HTTP(S) 负载平衡识别出来自 HTTP(S) 客户端的 WebSocket 升级请求,并且该请求之后是来自后端实例的成功升级响应时,负载平衡器会在当前连接期间代理双向流量。如果后端没有返回成功的升级响应,负载均衡器将关闭连接。

https://cloud.google.com/load-balancing/docs/https/#websocket_proxy_support(强调我的)

如何才能做到这一点?