Я делаю это с Server-Sent Event,
и у меня есть проблема, я могу открыть только одну и ту же страницу одновременно
за один, а не два или более (потому что они будут загружать его только до тех пор, пока текущая страница не остановится),
и это не что-то о session_write_close () также.
Вот код, который я протестировал на моем сервере
(с двумя разными серверами, XAMPP & EasyPHP и OSX встроенный PHP тоже),
Я переименую его в «test.php»:
<?php
set_time_limit(0);
while(true)
{
echo time() . '<br>';
ob_flush();
flush();
sleep(1);
}
?>
Когда я запускаю test.php, все выглядит хорошо,
но если я открою ту же страницу в другой вкладке, она просто ничего не даст (зависание),
Может кто-нибудь сказать мне, что не так? Есть ли предел для этого?
РЕДАКТИРОВАТЬ: 2014/10/10
Хотя этот код не в демо, но похоже, что это произошло, когда
header('Cache-Control: no-cache');
существовал в вашем коде, возможно это ошибка Google Chrome, я проверю это раньше ..
—
РЕШЕНИЕ
Эта проблема возникла только в Google Chrome, поэтому я изменяю
header('Cache-Control: no-cache');
в
header('Cache-Control: no-store, no-cache, must-revalidate');
и это работает, пока вы не достигнете ограничение подключения по IP в Apache конфиг
или максимальное количество соединений на сервер браузера : D
Этот код работает для меня:
<?php
session_start();
session_write_close();
set_time_limit(5);
while(true)
{
echo time() . '<br>';
ob_flush();
flush();
sleep(1);
}
?>
Других решений пока нет …