利用socket.io,我通过GCLB代理的WebSocket连接以后端服务配置中定义的间隔关闭:
显然如图所示,解决方法是一个不切实际的长超时时间,但是为了正确起见,通过socket.io(或其他不是socket.io问题的地方)配置WebSocket连接的正确方法是什么?避免这些关闭?
根据GCLB日志关闭的原因是"backend_connection_closed_after_partial_response_sent"
。
如Cloud Load Balancer文档中所述,似乎我们需要发送适当的Upgrade响应才能使Load Balancer保持连接有效。
当HTTP(S)负载平衡识别到来自HTTP(S)客户端的WebSocket升级请求,并且该请求之后是来自后端实例的成功升级响应,则负载平衡器将代理双向流量在当前连接期间。如果后端未返回成功的升级响应,则负载均衡器将关闭连接。
https://cloud.google.com/load-balancing/docs/https/#websocket_proxy_support(强调我的意思)
这怎么办?