[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