通过 Nginx 重写 WebSocket 消息?

是否有可能通过 Nginx 代理重写 WebSocket 消息的内容?

例如,假设我发送了一个消息,其内容为 JSON.stringify({ auth: 'someIdKey' })。在 Nginx 上,我想将 someIdKey 的值替换为 someJwt,然后将其转发到代理上游资源。当上游资源向客户端发送消息时,我还想进行反向翻译。

我知道如何做到这一点 (也正在做到这一点) 对于 HTTP 请求,重写自定义标头以进行即时翻译,但我不确定如何将此模式延续到 WebSocket 通信。

我使用 OpenResty 作为我的 Nginx 发行版,并在 Lua 脚本方面做得还不错。

感谢任何想法/帮助。

点赞
用户2060502
用户2060502

你可以使用 https://github.com/openresty/lua-resty-websocket 模块。

它具有服务器和客户端的非阻塞 API。因此,你可以编写任何你想要的内容。

2017-04-13 08:07:08