凤凰框架自定义频道

phoenix framework custom channels

我正在寻找一种在 phoenix 框架中实现自定义通道的方法我不想使用主题,而是基于负载进行路由。

例如,我有这样一条 json 消息

{
    "command":"hello",
    "payload": {
                 "message_id":"001",
                 "body":"is it me your looking for"
               }
    }
}

并想根据 "command" 的值进行路由,但我不知道从哪里开始。我无法发送主题,因为我想使用现有的 api。

您可以通过实施您自己的传输序列化程序 (https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/transports/serializer.ex) 并将您的客户端消息格式转换为包含主题、事件、负载的 %Phoenix.Socket.Message{} 格式来实现。将内置的 websocket 序列化程序作为适应的起点: https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/transports/websocket_serializer.ex