[Moscow.pm] websocket
Yaroslav Korshak
ykorshak на gmail.com
Вс Окт 23 02:28:45 PDT 2011
On 10/23/2011 11:34 AM, Ivan Petrov wrote:
> понадобились тут вебсокеты.
Обратите внимание на состояние документа
http://dev.w3.org/html5/websockets/ "Editor's Draft 5 October 2011"
<http://dev.w3.org/html5/websockets/>
> нужно иметь дофигища соединений и им рассылать изредка сообщения.
>
> попытался запустить Mojo:: примеры что про IRC, но они не совместимы с
> современным браузером. ну да не в этом дело.
Протокол изменялся и, возможно, будет изменяться в будущем
> мыслится что серверная часть вебсокетов должна работать на событийной
> машинке и при этом предоставлять возможность внешней генерации
> событий.
> то есть нечто вроде такой структуры:
>
> 1. демон принимающий соединения
>
> 2. внутренний сокет или порт через который можно с демоном
> соединиться и отправить ему информацию по которой он сплавит
> сообщения одному или нескольким (или никому) присоединенным клиентам.
Вполне решается вебсервисом с (JSON|*) RPC на который при желании можно
повесить дополнительную вебморду.
> Вопросы:
>
> 1. а что готовое на эту тему есть?
Реализация протокола:
https://metacpan.org/module/Protocol::WebSocket
и соотв. статья автора
http://showmetheco.de/articles/2011/3/using-protocol-websocket-with-plack.html
Минус в том, что если (когда) снова поменяют черновик, некоторое время
реализация может быть не стабильной или просто не работать.
Более стабильный вариант - использование SocketIO протокола который
пытается работать на любых платформах, но при этом использует наилучшую
из доступных технологий от WebSocket до Forever Iframe и JSONP Polling.
Описание совместимости и поддерживаемых протоколов тут:
http://socket.io/#browser-support
Для Perl, как уже написал Денис, есть реализация которая называется
PocketIO, которая использует в том числе Protocol::WebSocket
Чтобы узнать немного больше, можно почитать статью автора:
http://showmetheco.de/articles/2011/9/pocketio-realtime-applications-for-plack.html
ну и документацию на socket.io
Насколько мне известно, PocketIO использовалась в реальном проекте с
достаточно большой нагрузкой.
Плюс в поддержке большого количества платформ/клиентов. Минус в более
сложном разворачивании приложения.
> 2. можно ли вебсокетные соединения пробрасывать через nginx?
nginx_tcp_proxy_module
http://habrahabr.ru/blogs/nginx/124089/
Возможно, сейчас есть решения и лучше, я некоторое время не следил за
ситуацией вокруг WebSocket
--
Regards
yko
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20111023/28624cf5/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm