xajax + comet plugin kullanımı
Yazan: ayhan,PhpTags/Kelimeler: comet, uzun ömürli bir http bağlantısı, xajax, xajax plugin
comet pek bilinmeyen, kullanılmayan ama ustasının ellerinde cok faydalı sonuclar ortaya çıkaran bir yöntem.
php xajax kullanlar ajax yontemi ile server'a istekler gönderebiliyorlar peki ya bunun tam tersi nasıl olurdu,
yani server size data gönderse ?
örneğin bir chat scripti;
-bunu temel mantığı her 3 saniyede bir server'a istek gönder yeni mesaj varmı sor varsa yeileri al client ekranında göster.
-comet ile bir chat sripti yaparsak 3 saniyede yeni mesaj varmı diye sorma işlemi ortadan kalkıyor, yeni mesaj varsa server client a kendisi gönderiyor.
comet:
aslında çok kompleks bişey değil , ana fikir şu: server ile client arasında uzun ömürli bir http bağlantısı aç, işlemleri bu bağlanti üzerinden gerçekleştir.
xajax + comet
php xajax kütüphanesini : http://xajaxproject.org/en/download/ adresinden indirebilirsiniz.
comet eklentisi : http://xajaxproject.org/developer/q_no/Comet/comet.php adresinden indirebilirsiniz.
Basit bir örnek :
ne iş görecek : 100 e kadar sayacak, fakat herhangi bir istekte bulunmayacağız, sayıları server bize gönderecek.
-
<?php
-
$core="./xajax_core";
-
require ('xajax_core/xajax.inc.php');
-
$xajax = new xajax();
-
require_once $core . '/xajaxPlugin.inc.php';
-
require_once $core . '/xajaxPluginManager.inc.php';
-
require_once './xajax_plugins/response/comet/comet.inc.php';
-
-
$xajax->configure('javascript URI', './');
-
-
function testComet () {
-
$objResponse = new xajaxCometResponse(0.3);
-
for ($i=1;$i<=100;++$i) {
-
$objResponse->assign("streaming","innerHTML",$i);
-
$objResponse->flush();
-
}
-
return $objResponse;
-
}
-
-
$xajax->processRequest();
-
?>
-
-
<html>
-
<body>
-
<head>
-
<title>xajax example</title>
-
<?php
-
$xajax->printJavascript();
-
?>
-
</head>
-
<div id="streaming">----</div>
-
-
<script language="JavaScript">
-
<!--
-
xajax_testComet();
-
//-->
-
</script>
-
-
</body>
-
</html>
Entries (RSS)
20/08/2009 , 12:01
Hocam çok önemli bir konuya değinmişsiniz.Öncelikle teşekkürler…
Yanlız malum benim gibi php bilmeyen arkadaşlar için eğer mümkünse asp.net ile olan bir örnek yayınlayabilirmisiniz… Hem bu sayade gerekli ilgi ve alakayı şimdilik bulamayan comet programlamanın gelecekte ne kadar önemli olacağını hatta yeni bir çağ başlatacağı kanısındayım. Umarım bu konudaki ricamı kırmazsınız. İlgi ve alakanıza teşekkür eder çalışma hayatınızda başarılar dilerim..
26/03/2010 , 02:43
Güzel anlatımınız için teşekkürler. Çok fatdalı oldu.
15/05/2010 , 07:27
çok saolun bende böyle bşy nasıl yapılır çok merak ediyodum tam olarak çalışmadı bende aşadaki şu hataları verdi ve 46 ya kadar sayıyo yardımcı olursanız sevinirim çok saolun bu makale için
Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\den\xajax_core\xajax.inc.php on line 360
Deprecated: Assigning the return value of new by reference is deprecated in C:\wamp\www\den\xajax_core\xajax.inc.php on line 1305
Notice: Constant FILE_APPEND already defined in C:\wamp\www\den\xajax_plugins\response\comet\comet.inc.php on line 2
46