首页 > 解决方案 > Elixir phoenix 设置 websocket 响应头

问题描述

如何将 Sec-WebSocket-Protocol 设置为 phoenix websocket 中的响应标头?

我曾尝试使用 Plugs 将标头字段添加到conn对象中,但它似乎在某个地方被删除了。我尝试的另一个选项是通过导入创建自定义 websocket,Phoenix.Transport.Websocket但最终没有成功。

标签: elixirphoenix-framework

解决方案


phoenix 正在对此提供支持,请参阅 pull request #3444。如果您真的需要尝试一下,请考虑在您的 phoenix 分支上挑选补丁,或者直接使用 PR 作者分支中的 phoenix。

如果客户端传递了标头,则会自动设置标头。根据添加的文档:

如果 sec-websocket-protocol 标头与允许的子协议匹配,它将放置 sec-websocket-protocol 响应标头并返回给定的连接。

如果没有发送 sec-websocket-protocol 标头,它将返回给定的连接。


推荐阅读