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

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


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

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

7 июня 2016 г., 20:20 пользователь Akzhan Abdulin 
<mailto:[email protected]> написал:
А зачем именно так?

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

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

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

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

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

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

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

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

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

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

--
Moscow.pm mailing list
mailto:[email protected] | http://moscow.pm.org


Attachment: smime.p7s
Description: S/MIME cryptographic signature

-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить