<html>
<head>
<meta content="text/html; charset=KOI8-R" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 10/23/2011 11:34 AM, Ivan Petrov wrote:
<blockquote cite="mid:20111023083330.GC14585@apache.rbscorp.ru"
type="cite">
<pre wrap="">понадобились тут вебсокеты.
</pre>
</blockquote>
<meta http-equiv="content-type" content="text/html; charset=KOI8-R">
Обратите внимание на состояние документа <a
href="http://dev.w3.org/html5/websockets/">http://dev.w3.org/html5/websockets/</a>
"Editor's Draft 5 October 2011"<a
href="http://dev.w3.org/html5/websockets/"><br>
</a>
<blockquote cite="mid:20111023083330.GC14585@apache.rbscorp.ru"
type="cite">
<pre wrap="">нужно иметь дофигища соединений и им рассылать изредка сообщения.
попытался запустить Mojo:: примеры что про IRC, но они не совместимы с
современным браузером. ну да не в этом дело.</pre>
</blockquote>
Протокол изменялся и, возможно, будет изменяться в будущем<br>
<blockquote cite="mid:20111023083330.GC14585@apache.rbscorp.ru"
type="cite">
<pre wrap="">мыслится что серверная часть вебсокетов должна работать на событийной
машинке и при этом предоставлять возможность внешней генерации
событий.
то есть нечто вроде такой структуры:
1. демон принимающий соединения
2. внутренний сокет или порт через который можно с демоном
соединиться и отправить ему информацию по которой он сплавит
сообщения одному или нескольким (или никому) присоединенным клиентам.
</pre>
</blockquote>
Вполне решается вебсервисом с (JSON|*) RPC на который при желании
можно повесить дополнительную вебморду.<br>
<blockquote cite="mid:20111023083330.GC14585@apache.rbscorp.ru"
type="cite">
<pre wrap="">Вопросы:
1. а что готовое на эту тему есть?
</pre>
</blockquote>
Реализация протокола:<br>
<a href="https://metacpan.org/module/Protocol::WebSocket">https://metacpan.org/module/Protocol::WebSocket</a><br>
и соотв. статья автора
<meta http-equiv="content-type" content="text/html; charset=KOI8-R">
<a
href="http://showmetheco.de/articles/2011/3/using-protocol-websocket-with-plack.html">http://showmetheco.de/articles/2011/3/using-protocol-websocket-with-plack.html</a><br>
<br>
Минус в том, что если (когда) снова поменяют черновик, некоторое
время реализация может быть не стабильной или просто не работать.<br>
Более стабильный вариант - использование SocketIO протокола который
пытается работать на любых платформах, но при этом использует
наилучшую из доступных технологий от WebSocket до Forever Iframe и
JSONP Polling.<br>
Описание совместимости и поддерживаемых протоколов тут:
<meta http-equiv="content-type" content="text/html; charset=KOI8-R">
<a href="http://socket.io/#browser-support">http://socket.io/#browser-support</a><br>
Для Perl, как уже написал Денис, есть реализация которая называется
PocketIO, которая использует в том числе Protocol::WebSocket<br>
Чтобы узнать немного больше, можно почитать статью автора:
<meta http-equiv="content-type" content="text/html; charset=KOI8-R">
<a
href="http://showmetheco.de/articles/2011/9/pocketio-realtime-applications-for-plack.html">http://showmetheco.de/articles/2011/9/pocketio-realtime-applications-for-plack.html</a>
ну и документацию на socket.io<br>
<br>
Насколько мне известно, PocketIO использовалась в реальном проекте с
достаточно большой нагрузкой.<br>
<br>
Плюс в поддержке большого количества платформ/клиентов. Минус в
более сложном разворачивании приложения.<br>
<blockquote cite="mid:20111023083330.GC14585@apache.rbscorp.ru"
type="cite">
<pre wrap="">
2. можно ли вебсокетные соединения пробрасывать через nginx?
</pre>
</blockquote>
<meta http-equiv="content-type" content="text/html; charset=KOI8-R">
nginx_tcp_proxy_module<br>
<a href="http://habrahabr.ru/blogs/nginx/124089/">http://habrahabr.ru/blogs/nginx/124089/</a><br>
<br>
Возможно, сейчас есть решения и лучше, я некоторое время не следил
за ситуацией вокруг WebSocket<br>
<br>
--<br>
Regards<br>
yko<br>
</body>
</html>