Перше рішення, яке приходить в голову для отримання подій з сервера - це "Поллинг" (polling), тобто періодичний опитування сервера стандартними пакетами: "я тут, чи змінилося що-небудь?"
У відповідь сервер по-перше позначає у себе, що клієнт онлайн, а по-друге посилає датаграмму, в якій в спеціальному форматі міститься весь пакет подій, що накопичилися до цього моменту.
У цього способу є одна велика проблема, а саме - великі затримки між створенням і отриманням даних. Сервер відсилає їх не тоді, коли вони з'явилися, а коли настане час чергового запиту.
Затримка = час між опитуваннями + встановлення з'єднання + передача даних.
Інший мінус - зайвий вхідний трафік на сервер. При кожному запиті браузер передає безліч заголовків, причому заголовки
завжди йдуть в стислому вигляді. Для деяких додатків вхідний трафік заголовків може в 10 і більше разів перевершувати вихідний трафік реальних даних.
- Затримки між подією та повідомленням
- Вхідний трафік на сервер
- простота реалізації
В якості транспорту можна використовувати що завгодно - від XMLHTTPRequest до тегів script. Приклад не розглядаємо, і так все зрозуміло
- Версія для друку
Так складного в принципі особливо нічого немає.
Бачу аж три рішення.
1 - старт скрипта по крону
2 - при будь-якому "русі" будь-якого користувача по сайту (отримуємо роботу PHP-скрипта) змушуємо цей скрипт виконувати потрібну перевірку і прапорами по часу останнього оновлення відсіюємо зайве спрацьовування скрипта. Якщо користувачів достатню кількість, то цього способу цілком достатньо і навантаження на сервер не дуже прийнятніший, оскільки все одно обслуговується якийсь користувач.
3 - а що заважає події, яке справило якісь зміни повідомляти про це?