[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: long polling, и отправка данных по таймеру
livephp
Подскажите, как организовать отправку данных по таймеру.
Например есть простая функция курл, которая отправляет данные на канал "pub" с id "live" :
function push ($id, $message) {
/*
* $id - ID канала, либо массив, у которого каждый элемент - ID канала
* $message - сообщение, которое необходимо отправить
*/

$c = curl_init();
$url = 'http://example.org/pub?id=';


curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_POST, true);

if (is_array($id)) {
foreach ($id as $v) {
curl_setopt($c, CURLOPT_URL, $url.$v);
curl_setopt($c, CURLOPT_POSTFIELDS, json_encode($message));
$r = curl_exec($c);

if(!$r){
$error = curl_error($c).'('.curl_errno($c).')';
echo $error;
}
//если не ошибка, то выводим результат
else{
echo $r;

}
}
}
else {
curl_setopt($c, CURLOPT_URL, $url.$id);
curl_setopt($c, CURLOPT_POSTFIELDS, json_encode($message));
$r = curl_exec($c);

if(!$r){
$error = curl_error($c).'('.curl_errno($c).')';
echo $error;
}
//если не ошибка, то выводим результат
else{
echo $r;

}
}


curl_close($c);

}
push("live", $message);

и на стороне клиента есть скрипт, который каждые 60 сек делает запрос на канал "sub" с id "live" :
function check_messages() {
$.ajax({
url: "/sub/live",
type: "GET",
ifModified:true,
cache: false,
dataType:"json",
success: function(html){
$("body").html(html);

}

setTimeout(check_messages, 60000);

});

}
$(document).ready(function(){
check_messages();

}
}
);

Как отправлять данные через определенное количество времени ?
На счет этой теме я в гугле ничего не нашел ...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.