我正在寻找一种在凤凰框架中实现自定义渠道的方法我不想使用这些主题,而是根据有效负载进行路由。
例如,我有一个像这样的json消息
{
"command":"hello",
"payload": {
"message_id":"001",
"body":"is it me your looking for"
}
}
}
并希望根据"命令"的值进行路由,我不知道从哪里开始。我无法发送主题,因为我想使用现有的api。
答案 0 :(得分:4)
您可以通过实现自己的传输序列化程序(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