$type, 'data' => $data, 'time' => date('H:i:s') ]) . "\n\n"; flush(); } // Отправляем начальное событие send('connected', ['message' => 'Подключено']); // Основной цикл $lastBeat = time(); while (connection_status() == 0) { // Heartbeat каждые 15 секунд if (time() - $lastBeat >= 15) { send('heartbeat', ['time' => time()]); $lastBeat = time(); } // Проверяем события $file = '/tmp/crm_sse_events.json'; if (file_exists($file) && filesize($file) > 0) { $events = json_decode(file_get_contents($file), true); if ($events) { foreach ($events as $ev) { send($ev['type'], $ev['data']); } file_put_contents($file, ''); } } sleep(1); } ?>