[Moscow.pm] websocket - а что на фронтенд?

Dmitry Simonov dsimonov на gmail.com
Вт Авг 14 02:08:02 PDT 2012


2012/8/14 Ivan Petrov <i.petro.77.00 на gmail.com>:
>> При попытке вынести его в бой, получили неустойчивое
>> поведение на больших нагрузках (подвисания, утечки памяти, потери
>> коннектов).

> Автор Mojo хорошо реагирует на баги. я надеюсь о проблемах отписали?.

Да, автор изначально и декларирует, что Mojo::Server::Daemon
непредназначен для боевого использования. Мы получили ответ
непосредственно от автора.

> а я все еще думаю имеет ли смысл использовать Mojo для вебсокетов
стОит. Он устойчивый, лёгкий и на текущий момент практический
единственный стабильный инструмент для таких работ на перле. Можно
также писать отдельно на Object::Event + AE, - технология в общем не
самая сложная (привет, Монс!), но мне требовалась развитая
инфраструктура. На AE прежде чем прострелить себе ногу, надо будет
изобрести порох. Он хорошо для низкоуровневых работ.

> я так понял SockJS транслирует данные через имеющийся коннект
> дописывая их в сокет?
> я об этой модели думал, но мне непонятно как тут решать проблему если
> у пользователя какой-то кеш-прокси стоит? чисто заголовками?
>
> какие вообще об этой технологии ощущения?

Да, SockJS транслирует данные. По сути всё, что не поллинг и не
вебсокеты, - это js-пингующий сервер с таймаутом в 15 секунд. SockJS
является декоратором для такой эмуляции, а сам в нашей реализации
держит постоянный вебсокет с моджей. Впечатления более-менее
нормальные, но надо сразу подготовится к тому, что из коробки это
решение просто так не встанет. Проблем с кешем пользователя не
возникает, - это решает сам SockJS не только заголовками, но
персональными урлами для каждой сессии.

> у меня кстати сабжевый вопрос отсюда и родился. выделить IP-шники
> проблем нет, но выделять домен для вебсокетов совсем не хочется
Мы выделяем под вебсокеты субдомены клиентским сайтам, поторые по
факту смотрят на один и тот же ip. То есть для каждого сайта есть пара
ws.client-domain.ru и client-domain.ru/sockjs. У нас используется
pdns, который реплицируется на несколько точек по всему земному шару
(география сервиса разбросана весьма).


---
Dmitriy V. Simonov,
Perl & Python programmer


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