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

Александр Фролов alexandre на frolov.pp.ru
Ср Июн 8 00:26:51 PDT 2016


Хочется как-то упростить решение, на первый взгляд кажется, что Mojolicious::Lite позволяет сделать это проще.
У меня, правда, не Asterisk, а телефонный сервис типа Mango. Он и шлет запросы callback.

С уважением,
Александр Фролов


From: Moscow-pm [mailto:moscow-pm-bounces+alexandre=frolov.pp.ru на pm.org] On Behalf Of Akzhan Abdulin
Sent: Tuesday, June 07, 2016 8:23 PM
To: Moscow.pm group <moscow-pm на pm.org>
Subject: Re: [Moscow.pm] Сервер Mojolicious и WebSockets - как передать в браузер вызовы от внешнего сервиса?

Ну и да, сам Asterisk шлет мириады событий, я просто на них подписываюсь, и можно наблюдать за звонками и управлять оными.

7 июня 2016 г., 20:20 пользователь Akzhan Abdulin <mailto:akzhan.abdulin на gmail.com> написал:
А зачем именно так?

Делал интеграцию, и всегда хватало параллельного канала. А VoIP перенаправлял через nginx прямо к Asterisk.

На самом деле можно закопаться в протокол и написать свой прокси-сервер с событиями. можно взять за основу, например, https://github.com/nodejitsu/node-http-proxy#proxying-websockets

Но это лишние затраты энергии.

P.S.: завязки на url там нет.

7 июня 2016 г., 18:05 пользователь Александр Фролов <mailto:alexandre на frolov.pp.ru> написал:
Здравствуйте!

Я делаю интеграцию с внешним телефонным сервисом. Задача - принимать вызовы
от сервиса, когда поступает звонок от клиента и открывать страницу CRM для
этого клиента. Пытаюсь сделать это на Mojolicious::Lite и WebSockets, но
застрял на том, как мне принимать callback-вызовы (поступают просто на
заданный URL) и передавать их в браузер по установленному заранее каналу
WebSockets.

Насколько я понимаю, обычный сценарий - это когда web-страница из браузера
инициализирует соединение с сервером WebSocket, создает туда канал, потом
через JavaScript отправляет запросы серверу и принимает от него данные. Так
устроены все примеры, которые мне удалось найти, и они отлично работают.

Но я никак не могу придумать, как мне архитектурно обеспечить прием
callback-вызов от от внешнего сервиса в своем сервере Mojolicious::Lite, и
затем передать их по заранее установленному каналу WebSockets в браузер.

Использовать ли мне тот же самый URL, что и для инициализации канала
WebSockets или другой? Если другой, то как получить и передать данные?
Буду благодарен за помощь!

С уважением,
Александр Фролов

--
Moscow.pm mailing list
mailto:moscow-pm на pm.org | http://moscow.pm.org


----------- следущая часть -----------
Вложение не в текстовом формате было извлечено…
Имя: smime.p7s
Тип: application/pkcs7-signature
Размер: 6205 байтов
Описание: отсутствует
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20160608/71b188bd/attachment-0001.bin>


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