Мне было интересно, как сделать "истинную" (полу) потоковую передачу данных в реальном времени с помощью PHP.
Возможные приложения: чаты, аукционы, игры и т. Д.
Под "истиной" я подразумеваю, что данные не просто записываются где-то и непрерывно опрашиваются, но фактически как-то передаются клиенту.
Под "полу" я имею в виду, что все в порядке, если только поток с сервера на клиент выполняется в режиме реального времени, а сообщения от клиента на сервер - нет.
Для связи между клиентом и сервером я хотел бы придерживаться простого HTTP (AJAX), а не какого-либо другого протокола.
Потоковая передача на клиент с HTTP возможна путем ручной очистки буфера вывода.
Вопрос в том, к чему подключить этот скрипт на стороне сервера?
И как только он подключится, выполнить блокировку чтения, а не опросить изменения.
Расширение разделяемой памяти (shmop) будет работать, но оно не кроссплатформенное.
Возможно, memcached подойдет? Но я не уверен, есть ли способ сделать блокирующее чтение, так что все сводится к опросу снова - хотя я уверен, что memcached довольно быстрый, мне просто не нравится идея непрерывного опроса.
Есть идеи?