2015-11-05 3 views
2

Я ищу способ реализовать пользовательские каналы в феникс-фреймворке. Я не хочу использовать темы, но выполнять маршрутизацию на основе полезной нагрузки.phoenix framework пользовательские каналы

Например у меня есть сообщение JSon как этот

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

и хочу сделать маршрутизацию на основе значения «команды», и я понятия не имею, с чего начать. Я не могу отправлять темы, потому что хочу использовать существующий api.

ответ

3

Вы можете сделать это, реализовав собственный транспортный сериализатор (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

+0

Вы знаете пример, где это делается раньше? это будет полезно .. – jesuisbonbon

+0

Единственный пример - реализация websocket, но он следует за поведением и должен получить вам 75% пути к вашей реализации –