作者:benbowujixian | 来源:互联网 | 2023-02-04 13:40
我只是注意到gcp http(s)负载均衡器现在支持websockets.我去尝试一下,遇到了一些问题.我有一个gloabl https负载均衡器设置与云CDN和一个简单的,没有url-map,后端(Node.js).当我进行websocket连接时,我获得了成功的升级响应,但是当我将帧发送到服务器时,它们从未被收到.服务器可以将帧发送回客户端就好了.这几乎就像负载均衡器不知道连接已经升级,因此不允许从客户端发送任何数据.
当我查看https负载均衡器的日志时,我看到101 Switching Protocols响应,然后statusDetails "client_disconnected_after_partial_response"
几乎就像是普通的http请求.
任何帮助,将不胜感激.
1> Riley Lark..:
经过一些调查后,似乎当GCP负载均衡器正在通过GCP CDN时,客户端消息永远不会进入后端.
我通过在一个名为"websocket-prototype"的新后端中复制我想要的后端配置来解决这个问题,然后只更改websocket原型的"use cdn"设置.最后,我将我的websocket服务器的路径映射到没有CDN的配置.
所以我只是将这些更改添加到我的网站,他们工作得非常好.改变发生需要一段时间,所以起初我有点担心.请注意,您必须将请求超时更改为9999999秒,否则会过早地关闭您的连接(即使您像我一样发送ping/pongs以使其保持活动状态)