|
|
|
|
|
для: 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байт ответ.... | |
|
|
|
|
|
|
|
для: 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($file, filesize($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 | |
|
|
|
|
|
|
|
для: deman-b
(05.09.2007 в 13:23)
| | Можбыть в куках че-нить большое сидит? | |
|
|
|
|
|
|
|
для: deman-b
(05.09.2007 в 13:23)
| | ну браузер это браузер, он никого не слушая посылает пакеты) да с апачем помучаться и пересобирать можно попробывать...но смысла не вижу... я бы просто изменил алгоритм скрипта, можно конечно сделать конструкцию типа
while(true){
sleep(10);
echo "читай быстрее и заказывай товар нех думать";
flush();
}
но тупа с одной стороны.... я вот иногда открываю вкладку и не закрываю её несколько часов, забыв о ней) но мне вот на траф плювать....
а что за скрипт? можешь подробнее задачу описать? может подойти с другой стороны? | |
|
|
|
|
|
|
| есть js скрипт который через опр. период времени(короткий) посылает эхо запросы PHP скрипту...
фактически обмен данными не происходит, но трафик капает заметно.
я так понимаю это изза излишества HTTP заголовков посылаемых как браузером, так и сервером.
как мне можно уменьшить колличество зголовков хотябы со стороны сервера? | |
|
|
|
|