Вот выкладываю скрипт, как сделать мгн. обновление на UCOZ. Потребление трафика минимальное, UCOZ не банит, мгн. запрос\ответ
В папке php создаём папку evstream и в файле index.php пишем:
Code
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
function sendMsg($id, $msg) {
echo "id: $id" . PHP_EOL;
echo "data: $msg" . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();
}
$serverTime = time();
$count_user = 12; // Сколько пользователей online.
sendMsg($serverTime, 'online_count: '. $count_user);
Заходим на любую страницу модуля (Например: Главная страница каталога файлов), туда вставляем JS скрипт:
Code
setTimeout(function () {
var source = new EventSource('/php/evstream/index.php');
source.addEventListener('message', function(e) {
// Пришли какие-то данные
var feds = e.data;
var feds = feds.split(':');
$('#usersCount').html(feds[1]);
}, false);
source.addEventListener('open', function(e) {
// Соединение было открыто
}, false);
source.addEventListener('error', function(e) {
if (e.eventPhase == EventSource.CLOSED) {
// Соединение закрыто
}
}, false);
}, 100);
и в любое место вставляем: <span id="usersCount"></span>
Этот пример можно переделать под любые нужды, к примеру мгн. обновление новых ЛС.
Этот скрипт может подойти для не высоко нагруженных сайтов, для высоко нагруженных систем потребуется Memcache!
Данный подход к мгн. обновлению не единственный, существует много разных способов сделать мгн. обновление: dklab realplexor, long polling, node js и мн.др.Добавлено (11.05.2012, 12:59)
---------------------------------------------
У кого возникли вопросы, пишите)