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