Сегодня речь пойдёт об WaterSpout — веб сервере, способном обрабатывать websockets запросы, позволяя общаться в реальном времени между сервером и браузером используя websockets или long polling. Написан он на PHP.
В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
1. Скачать
2. Запустить в командной строчке: php server.php
3. Готово: http://localhost:7777/demos/locke (порт меняется в config/config.php)
PHP 5.2.1 или выше.
Должны быть включены следующие экстеншены: mbstring, sockets, openssl (если хотите использовать ssl)
Сейчас обычно используется технология, при которой браузер посылает запросы к серверу через определённое количество времени. Такой подход либо требует пересылки одних и тех же данных (что ест ваш траффик), либо ответ приходит с задержкой, в зависимости от интервала обновлений. Используя же WaterSpout пользователи могут получить результат сразу же, как он пришёл на сервер.
С помощью WaterSpout'а возможно делать браузерные многопользовательские игры, чаты, сервисы с мгновенным взаимодействием.
Демка для сравнения технологии websockets, long polling и short polling.
P.S. Если вас заинтересовала данная архитектура и хотите попробовать разработать что-то своё — не стесняйтсесь — пишите вличку, помогу всем чем смогу. Любые комментарии и замечания приветствуются.
Слайды по теме
Интеграция с Kohan'ой
В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
Как запустить у себя?
1. Скачать
2. Запустить в командной строчке: php server.php
3. Готово: http://localhost:7777/demos/locke (порт меняется в config/config.php)
Требования к софту:
PHP 5.2.1 или выше.
Должны быть включены следующие экстеншены: mbstring, sockets, openssl (если хотите использовать ssl)
Сравнение и применение:
Сейчас обычно используется технология, при которой браузер посылает запросы к серверу через определённое количество времени. Такой подход либо требует пересылки одних и тех же данных (что ест ваш траффик), либо ответ приходит с задержкой, в зависимости от интервала обновлений. Используя же WaterSpout пользователи могут получить результат сразу же, как он пришёл на сервер.
С помощью WaterSpout'а возможно делать браузерные многопользовательские игры, чаты, сервисы с мгновенным взаимодействием.
Демка для сравнения технологии websockets, long polling и short polling.
P.S. Если вас заинтересовала данная архитектура и хотите попробовать разработать что-то своё — не стесняйтсесь — пишите вличку, помогу всем чем смогу. Любые комментарии и замечания приветствуются.
Полезные ссылки
Слайды по теме
Интеграция с Kohan'ой