Envoy代理/将活动的websocket连接移动到另一个上游主机



我是特使代理的新用户,也许有人可以帮助我

我有两个上游主机(UH1和UH2(,并配置了从客户端(前端(到它们的特使代理到代理(循环(网络套接字连接。

假设UH1有一个活动的websocket连接(WC1(,而UH1关闭(关闭所有连接(。我想让连接WC1与客户端保持活动状态,并将连接移动到UH2。有人能说这是否可能吗?

提前谢谢!

我在特使开发团队的官方谷歌小组中问了这个问题,得到了Stephan的回答:

当前不支持此功能。

我的感觉是,可以编写一个HTTP过滤器支持此行为的路由器筛选器的位置使用升级配置[1],但这可能需要做很多工作。那个过滤器可能需要缓冲原始HTTP请求才能形成一个新的websocket到不同的上游,它需要解码websocket帧以避免转发部分帧。此外,如果websocket上的消息是面向请求/响应的过滤器将具有缓冲websocket帧并了解其内容以避免丢弃请求。

根据我的经验,优化从客户端重新连接形成一个新的websocket连接更容易实现,而且当客户端和Envoy之间的连接被切断。

Stephan

https://groups.google.com/g/envoy-dev/c/3yCTqLx5ePE

最新更新