[Moscow.pm] Сервер Mojolicious и WebSockets - как передать в браузер вызовы от внешнего сервиса?

Dmitry L. dim0xff на gmail.com
Вт Июн 7 09:18:45 PDT 2016


2016-06-07 18:05 GMT+03:00 Александр Фролов <alexandre на frolov.pp.ru>:
> Но я никак не могу придумать, как мне архитектурно обеспечить прием
> callback-вызов от от внешнего сервиса в своем сервере Mojolicious::Lite, и
> затем передать их по заранее установленному каналу WebSockets в браузер.
>

Пара вариантов навскидку.
1. Держать в приложении "инфу" о вебсокет-сессиях. Когда приходит
колбек, в контроллере вытаскивать нужную вебсокет-сессию из "инфы" и
для неё отправлять необходимые данные. Одна из задач, которую здесь
придётся решить - подчищать за собой "инфу", когда пользователь
закрывает браузер (сессия рвётся/завершается).
2. Взять Mojo::EventEmitter. В контроллере вебсокет-сессии подписаться
на событие. В контроллере колбека - генерировать событие. Надо только
посмотреть, все ли подписчики получат уведомление или только первый,
но предполагаю, что все. Дальше действуем как в первом случае.



-- 
//wbr, Dmitry L.


Подробная информация о списке рассылки Moscow-pm