Protocol::WebSocket поддерживает все версии. 13.08.2012 23:53 пользователь "Dmitry Simonov" <[email protected]> написал:
> В общем слушайте Дениса Ибаева, - он на этих вебсокетах собаку съел. А > я ему эту свинью подложил :) > > Вебсокеты по своей сути нужны для постоянно коннекта с браузерами > клиента. В результате внедрения вебсокетов на наш проект, мы > фактически можем в реалтайме менять всю картинку в браузере у клиента > и получать при этом обратную связь. При числе клиентов более четверти > миллиона, - это ощутимо. Строго говоря, можно мы имеем распределённый > ботнет из браузеров клиентов. > > Итоги внедрения: с браузерами минимальные проблемы и ох..евшие > проблемы с провайдерами, которые всеми мыслимыми и немыслимыми > способами пытаются сэкономить на трафике. Например, в моём московском > офисе Акадо (сука!) режет хёдеры хендшейка. При внедрении вебсокетов > меньше всего мы собственно занимались самими вебсокетами, а больше > всего бились над внедрением их эмуляции, в случае проблем с > провайдерами. > > Итак из чего состояло внедрение: > > * Мы заюзали Mojolicious с использованием Mojo::Server::Daemon на > этапе разработки. При попытке вынести его в бой, получили неустойчивое > поведение на больших нагрузках (подвисания, утечки памяти, потери > коннектов). Движок сменили на Starman, - он стал панацеей. > > * Столкнулись с тем, что Сафари на iДевайзах юзает WebSocket76, > который Mojolicious уже не поддерживает. Решением стал: > https://github.com/SetupRu/mojox-transaction-websocket76 > > * Наступили на грабли с провайдерами, которые просто неготовы с > вебсокетам. Для них прикрутили питонячий SockJS. С ним бекендом умеет > работать Tornado, который в отличие от SockJS не умеет работать > неблокируемо с внутренниими интерфейсами. Допилили его проксёй, > обученной общаться с Mojocious родными вебсокетами. По ходу действия > столкнулись с чисто питонячими проблемами работы библиотеки WebSocket > (она сыровата ещё). Вообще некоторые Http-протоколы на питоне > смотрятся толи сыровато, то ли там какой-то совершенно иной подход, > сильно отличающийся от перла с точки зрения именно интерфейсов. > > * Специально для наших "любимых" провайдеров транспорт вебсокетов > пропускаем по 80му порту (все остальные порты ни каким образом от > блокироки провайдерами не защищены), - для этого специально выделены > ip-шники. > > * Для хранения сессионных данных используем мемкеш. > > * Параллельно всему этому развивался и допиливался js-кусок, > работающий с Mojolicious и SockJS, постепенно превращаясь в правильный > инструмент. Архитектурно вся связка работает по протоколу JSON RPC > 2.0. Бекенд выступает как полноценное API, входными интерфейсом к > котором прикручен HTML::FormHandler, как инструмент умеющий правильно > валидировать приходящие формы (понятно, что вместо форм мы оперирует > JSON-конструкциями). > > * Как отдельные грабли (хотя и незначительные) назову необходимость > обрабатывать на уровне js русскоязычные домены с использованием > punycode. > > * Прикрутили многоязычность. > > Результирующая связка следующая: > > Browser <=> fh.js <=> ( SockJS <=> Tornado <=> ) Starman <=> > Mojolicious <=> HTML::FormHandler <=> MemCache + DBIx::Class. > > Получившаяся схема имеет 100% покрытие всех пользователей. На текущий > момент построенная связка находится в бета-тестировании и мы учимся > контролировать все звенья, чтобы они тупо не выпадали. До сих пор > некоторым образом некоторые звенья то выпадают, то отключаются, то их > тупо кто-то стреляет. Но это уже вопросы администрирования, на котором > мы всё туже затягиваем гайки. Мост наведён, вытянут в струнку и готов. > > Смотреть можно на любых сайтах построенных на setup.ru, - вебсокеты в > режиме бета-тестирования используются для формы обратной связи (ушко > "задать вопрос") и корзины: > * http://проба-пера.рф/ <http://xn----7sbbbw4cgeeg.xn--p1ai/> - форма > обратной связи > * http://tekstil33market.ru/katalog/polotentca/makhrovoe-polotentce-00952 > - корзина > * http://myxbox360.ru/console/xbox-360-slim-freeboot - простая форма > заказа > > Следует обратить внимание, что все три типа формы работают по одному и > тому же единому протоколу. > > Жду фидбека: вопросы, замеченые косяки, пожелания. > Полный список всех сайтов на setup.ru здесь: http://setup.ru/top/ > > --- > Dmitriy V. Simonov, > Perl & Python programmer > > > 2012/8/14 Akzhan Abdulin <[email protected]>: > > HA Proxy, не? > > > > 13 августа 2012 г., 14:13 пользователь Ivan Petrov < > [email protected]> > > написал: > > > >> хочу таки попробовать проектик на вебсокетах сваять. хоть половина > >> браузеров его и не поддерживает, но поскольку нужен довольно сильный > >> интерактив, видимо придется клиенту говорить "поставьте другой > >> браузер" если его браузер их не поддерживает... > >> > >> соответственно у нас везде инфраструктура была такая: nginx на > >> фронтенде и куча бакендов в зависимости от location. > >> сунулся в nginx - он вроде вебсокеты еще не поддерживает. а что вместо > >> него поюзать можно? > >> -- > >> Moscow.pm mailing list > >> [email protected] | http://moscow.pm.org > > > > > > > > -- > > Moscow.pm mailing list > > [email protected] | http://moscow.pm.org > > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
