Pull to refresh

WaterSpout — веб сервер для асинхронной передачи данных

Website development *
Сегодня речь пойдёт об 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'ой
Tags:
Hubs:
Total votes 61: ↑54 and ↓7 +47
Views 1.6K
Comments Comments 41