Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: экономия траффика

Сообщения:  [1-5] 

 
 автор: deman-b   (05.09.2007 в 17:31)   письмо автору
 
   для: kasmanaft   (05.09.2007 в 16:59)
 

хм.. наврядли : я мерил фаерволом трафик - ответ от сервера в 1.2 раза больше..
все что посылает браузер это слово ECHO //
а сервер вот это:
document.form1.body.value += "TEXT\n";document.form1.body.scrollTop = document.form1.body.scrollHeight;
и то в том случае если что то произошло(вместо TEXT сообщение) а так в основном ничего не овечает.
В среднем один запрос состовляет 1Кбайт, т.е. ~400байт от браузера к серверу и ~600байт ответ....

   
 
 автор: deman-b   (05.09.2007 в 17:18)   письмо автору
 
   для: tricket   (05.09.2007 в 16:18)
 

это простенькая заточка под консоль для админа т.е для меня))
задача ее - мониторингг сайта
также можно выполнять всякие команды
ВОТ:
console_client.php

<?php
session_start
();
$_SESSION['console']['lasttime'] = time()-300;
##############################################
$_SESSION['authorise']['status'] = 'ADMIN';
$_SESSION['authorise']['last_ip'] = $_SERVER['REMOTE_ADDR'];
print 
time();
#########################################3333
?>
<html>
<head>
<script language="JavaScript">
var console_refresh = <?=15000?>;
function bgsend(url) {
    var element = document.createElement('SCRIPT');
    element.type = 'text/javascript';
    element.src = url;
    document.body.appendChild(element);
}
function loadjselement(text){
    if(text) {
        if(text != 'echo') {
            document.form1.body.value += text+"\n";
            document.form2.q.value = "";
        }
        url = '<?=dirname("http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'])?>/console_server.php?q='+escape(text)+'&nocaching='+Math.random();
        bgsend(url);
    }
    return false;
}
function autoloadjs() {
    loadjselement('echo');
    setTimeout("autoloadjs()",console_refresh);

}
</script>
</head>
<body onload="autoloadjs();">

<form name="form1">
<textarea readonly name="body" style="width:400;height:300;s">
HELOOOO ADMIN!!!
Current time: <?=date("H:i:s l, j-F-Y",time())."\n"?>
</textarea>
</form>

<form name="form2" onsubmit="return loadjselement(form2.q.value);" action="" method="" >
<input type="text" name="q">
<input type="submit" value="submit">
</form>

</body>
</html>

каждые 15 секунд она посылает эхо запросы..
если чтото новенькое случилось на сайте - то выводит.
также может обрабатывать команды посылаемые админом, например, бан))
.Все это выполнено без аякса через JsHttpRequest
вот код обработчика:
console_server.php

<?php
session_start
();
$SID session_id();
if(!empty(
$_GET["q"])) {
    
$q trim(urldecode($_GET["q"]));
    if(
$_SESSION['authorise']['status']=='ADMIN' && $_SESSION['authorise']['last_ip']==$_SERVER['REMOTE_ADDR']) {
        
$lasttime $_SESSION['console']['lasttime'];

        
$return console_command_list($q,$lasttime);
        if(!empty(
$return)) {
            print 
'document.form1.body.value += "'.$return.'";';
            print 
'document.form1.body.scrollTop = document.form1.body.scrollHeight;';
        }
    } else {
        print 
'document.form1.body.value += "You don`t have permission to access console on this forum.\\n";';
        print 
'document.form1.body.scrollTop = document.form1.body.scrollHeight;';
    }
}
function 
console_command_list($q,$lasttime) {
    
$return "";
    if(
$q=="echo") {
        
$file fopen($fname="console_history.txt","rt");
        
flock($file,LOCK_EX);
        if(
filesize($fname)!=0) {
            
$arr_history explode("\n"fread($filefilesize($fname)));
            for(
$i=0;$i<count($arr_history);$i++) {
                
$j explode(":=>",$arr_history[$i]);
                if(
$j[0] >= $lasttime) {
                    
$return .= str_replace("\n","\\n",$j[1]);
                }
            }
        }
        
$_SESSION['console']['lasttime'] = time();
        
fclose($file);
        
$return .= "echo\\n";
    }
    if(
strpos($q,"currenttime")!==false) {
        
$return.="Current time: ".date("H:i:s l, j-F-Y",time())."\\n";
    }
    if(
strpos($q,"denisdurak")!==false) {
        
$return.="denisdurak!!!!!!!!!!!!\\n";
    }
    if(empty(
$return)&&($q!="echo")) {
        
$return.="Unknown command `".$q."`!\\n";
    }
    return 
$return;
}
?>

код очень сырой , особенно функция console_command_list()
и пока что откликается на одну команду: currenttime

   
 
 автор: kasmanaft   (05.09.2007 в 16:59)   письмо автору
 
   для: deman-b   (05.09.2007 в 13:23)
 

Можбыть в куках че-нить большое сидит?

   
 
 автор: tricket   (05.09.2007 в 16:18)   письмо автору
 
   для: deman-b   (05.09.2007 в 13:23)
 

ну браузер это браузер, он никого не слушая посылает пакеты) да с апачем помучаться и пересобирать можно попробывать...но смысла не вижу... я бы просто изменил алгоритм скрипта, можно конечно сделать конструкцию типа
while(true){
sleep(10);
echo "читай быстрее и заказывай товар нех думать";
flush();
}
но тупа с одной стороны.... я вот иногда открываю вкладку и не закрываю её несколько часов, забыв о ней) но мне вот на траф плювать....
а что за скрипт? можешь подробнее задачу описать? может подойти с другой стороны?

   
 
 автор: deman-b   (05.09.2007 в 13:23)   письмо автору
 
 

есть js скрипт который через опр. период времени(короткий) посылает эхо запросы PHP скрипту...
фактически обмен данными не происходит, но трафик капает заметно.
я так понимаю это изза излишества HTTP заголовков посылаемых как браузером, так и сервером.
как мне можно уменьшить колличество зголовков хотябы со стороны сервера?

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования