[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: реал-тайм на php
Страницы: 1, 2, 3
VELIK505
Надо чекать юзаков на онлайн/офлайн и + выводить общее кол-во онлайна людей на сайте (цифру). в реалтайме.
Сделал по простому.
Есть табличка memory usonline visitor lastvisit
куда идут запросики:
whonline.php:
$user_onli=(isset($_SESSION['username']))? $_SESSION['username'] : '' ;
$uo_keepquiet="";
$uo_query = "SELECT `lastvisit` FROM `still_online` WHERE `visitor` = '".$_SERVER['REMOTE_ADDR']."'";
$uo_result = mysql_query($uo_query);
if(mysql_num_rows($uo_result) == 0) {
mysql_query("INSERT INTO `still_online` (`visitor`,`lastvisit`,`usonline`) VALUES('".$_SERVER['REMOTE_ADDR']."', unix_timestamp(), '". mysql_real_escape_string($user_onli) ."')");
} else {
mysql_query("UPDATE `still_online` SET `lastvisit` = unix_timestamp(), `usonline`='". mysql_real_escape_string($user_onli) ."' WHERE `visitor` = '".$_SERVER['REMOTE_ADDR']."'");
}
if($uo_keepquiet == FALSE) {
$uo_count = mysql_num_rows(mysql_query("SELECT `usonline` FROM `still_online`"));
}

ajax_online.php:
<?php session_start();
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
require_once($_SERVER['DOCUMENT_ROOT']."/whonline.php");
echo ' '.$uo_count;
mysql_close($con);
?>

ну и на сайте:
<script>
$(document).ready(function(){
setInterval(function(){
$.ajax({
type:'POST',
url:'/ajax_online.php',
success:function(data){
$("#online-site").html(data);
}
}
);
},10000);
});
</
script>

<div class="on_line" title="Сколько человек онлайн"><div class="onpovorot" id="online-site"> <?=$uo_count;?></div>

Раз в 10 секунд чекаю.
Всё впринипе устраивает (кол-во запросов к mysql-memory-table абсолютно не напрягает и не волнует).
Но вот php при таком подходе кушает гораздо больше процессорного времени (%CPU).
Как я понимаю из за того же рекуе/инклюда которые едят время процессора? то что раз в 10 сек допустим у 4000 типов которые онлайн выполняеться 8000 инклюдов? или из за session_start?
Быстрый ответ:

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