Использую SEE и наткнулся на такой косяк:
На локальном сервере все работает:
public function actionUpdateProposals()
{
// id игры
$game_id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? (int)$_GET['id'] : 0;
set_time_limit(120);
header('Content-type: text/html; charset=utf-8');
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header("Access-Control-Allow-Origin: *");
$start = time();
$lastEventId = floatval(isset($_SERVER["HTTP_LAST_EVENT_ID"]) ? $_SERVER["HTTP_LAST_EVENT_ID"] : 0);
if ($lastEventId == 0)
{
$lastEventId = (isset($_GET["key"])) ? (string)$_GET["key"] : 0;
}
while(true)
{
//if ((time() - $start) > 10) {break;}
//echo ":" . str_repeat(" ", 2048) . "\n"; // 2 kB padding for IE
echo "retry: 2000\n";
echo "id: {$lastEventId}" . PHP_EOL;
echo "data: " . GameOperations::load()->getJsonProposalsData($game_id) . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
}
}
Что должно быть:
Соединяемся держим соединение 2 минуты, в это время каждые 5 секунд отдаем данные.
На локалке все хорошо (апатч)
Переносим на сервер (нгинкс) и выхватываем:
Ждет 2 минуты, конектиться отдает данные теряет соединение. Ждет 2 минуты и так далее...
Прочитал про всякие настройки типа:
output_buffering = Off
zlib.output_compression = Off
Поставил, теперь выглядит вот так:
Соединение
Обновление данных
Потеря соединения
Соединение
Обновление данных
Потеря соединения
Соединение
Обновление данных
Потеря соединения
И так бомбит постоянно.
на нгинксе добавил:
gzip off;
proxy_buffering off;
Всеравно не спасло.
Подскажите пожалуйста в чем проблема ?