- PVSM.RU - https://www.pvsm.ru -
Websocket′ы полезны постоянным дуплексным соединением backend-сервера с браузером клиента — это прочный мост между сервисом и посетителями, по которому удобно беспрепятственно транспортировать потоки данных в обе стороны.
В результате внедрения websocket′ов наш проект получил возможность в реальном времени менять по своему усмотрению отображение страниц в браузере на протяжении всей клиентской сессии и иметь обратную связь.
В ходе построения всей технологической цепочки мы легко перешагнули через проблемы с браузерами, лишь изредка не поддерживающими либо сами websocket′ы, либо их эмуляцию через flash.
Однако, когда дело дошло до полевых испытаний, обнаружилась масса проблем с ISP, всеми мыслимыми и немыслимыми способами пытающимися сэкономить трафик за счёт своих клиентов. Об этих и других «граблях» полноценного боевого внедрения websocket′ов читайте под катом.
К примеру, в московском офисе нашей компании proxy-сервер ISP (самый крупный в Москве) вырезает заголовки websocket handshake. Таким образом, 80 % наших усилий было потрачено на разрешение мирным способом именно этих проблем.
Но есть и хорошие новости: построенная связка технологий сейчас уже находится в режиме бета-тестирования. Мы учимся контролировать все звенья технологической цепочки от выпадения — это вопрос администрирования, на котором мы всё туже затягиваем гайки. Мост наведён, вытянут в струнку и ждёт первых посетителей.
Вот краткая хроника решения проблем на этапе внедрения.
Получившаяся схема обеспечивает 100%-ное покрытие всех пользователей. Смотреть плоды внедрения можно на любых сайтах, построенных на setup.ru, — websocket′ы в режиме бета-тестирования используются для форм обратной связи («ушко» «Задать вопрос») и корзины интернет-магазина.
Ссылки по теме:
Автор: dsimonov
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/websocket/13170
Ссылки в тексте:
[1] Википедия про вебсокеты: http://ru.wikipedia.org/wiki/WebSocket
[2] Mojolicious: http://mojolicio.us/
[3] SockJS: http://sockjs.org
[4] MojoX::Transaction::WebSocket76: http://metacpan.org/module/MojoX::Transaction::WebSocket76
[5] Mojo::Server::Hypnotoad: https://metacpan.org/module/Mojo::Server::Hypnotoad
[6] SockJS-Tornado: http://github.com/MrJoes/sockjs-tornado
[7] WebSocket: http://pypi.python.org/pypi/websocket
[8] Setup.ru: http://setup.ru
Нажмите здесь для печати.