AyhanBaris.com Yazılım Mühendisi » Blog Arsivi » xAjax + Comet plugin kullanımı

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://xajax-project.org/en/download/ adresinden indirebilirsiniz.

comet eklentisi : http://xajax-project.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:
  1. <?php
  2. $core="./xajax_core";
  3. require ('xajax_core/xajax.inc.php');
  4. $xajax = new xajax();
  5. require_once $core . '/xajaxPlugin.inc.php';
  6. require_once $core . '/xajaxPluginManager.inc.php';
  7. require_once './xajax_plugins/response/comet/comet.inc.php';
  8.  
  9. $xajax->configure('javascript URI', './');
  10.  
  11. $xajax->register(XAJAX_FUNCTION,"testComet",array("comet" => true));
  12. function testComet () {
  13.     $objResponse = new xajaxCometResponse(0.3);
  14.     for ($i=1;$i<=100;++$i) {
  15.         $objResponse->assign("streaming","innerHTML",$i);
  16.         $objResponse->flush();
  17.         sleep(1);
  18.     }
  19.     return $objResponse;
  20. }
  21.  
  22. $xajax->processRequest();
  23. ?>
  24.  
  25. <html>
  26. <body>
  27. <head>
  28.     <title>xajax example</title>
  29.     <?php
  30.         $xajax->printJavascript();
  31.     ?>
  32. </head>
  33. <div id="streaming">----</div>
  34.  
  35. <script language="JavaScript">
  36. <!--
  37.     xajax_testComet();
  38. //-->
  39. </script>
  40.  
  41. </body>
  42. </html>

>

7 Yorum “xAjax + Comet plugin kullanımı”

  1. ilker :

    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..

  2. mucahid1986 :

    Güzel anlatımınız için teşekkürler. Çok fatdalı oldu.

  3. murat :

    ç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

  4. Comet Teknolojisi :

    [...] http://www.ayhanbaris.com/php/xajax-…gin-kullanimi/ Kampanya 15 TL Linux Hosting ve Sýnýrsýz Özellikler Web Design Services - ulviercan.com Ücretsiz Sayaç Servisi - sayac.ulviercan.com Alýntý Yaparak Yanýtla   + Cevap Yaz « Önceki Konu | Sonraki Konu » [...]

  5. asp ajax ile comet teknolojisini kullanma :

    [...] bu olaya bir açýklýk getirir ise çok sevinirim. iyi çalýþmalar. (*php için tasarlanmýþ bir örneðe buradan ulaþabilirsiniz.) bilgi paylaþtýkça ve deðer gördükçe çoðalýr ! http://www.netteemlak.com - [...]

  6. metin seylan :

    gerçekten harika olmuş nette comet ile ilgili fazla döküman yok

    phplive x kullanıyordum fakat artık xajax a geçmeyi planlıyorum

  7. Soru: Döngü içinde bekletme nasýl yapýlýr? :

    [...] tampondaki veriyi istemciye gönderip tamponu boþaltýr. Yani sorununuzu çözmekte kullanýlamaz. http://www.ayhanbaris.com/php/xajax-…gin-kullanimi/ Böyle yerlerde kullanýlmaktadýr. http://www.php.net/manual/tr/function.flush.php adresinde ise [...]

Cevapla

Son Yazılar :

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES ('istanbul'), [...]

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES ('istanbul'), [...]

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES ('istanbul'), [...]

utf8 general - utf8 turkish

utf8 general ============================================================= Tablo : DROP TABLE IF EXISTS `tt`; CREATE TABLE IF NOT EXISTS `tt` ( `ad` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tt` (`ad`) VALUES ('istanbul'), [...]

if(5==$deger) yada if ($deger==5)

if(5==$deger) yada if ($deger==5) Sizin de dikkatinizi çekmiştir, Bazı projelerde alıştığımız if şartını ters yazıyorlar; if ($deger==5) yerine if(5==$deger) bu yazımın kaynağı C’den geliyor. = atama. == eşit mi karşılaştırması. C türevi tüm dillerde karşılaştırma operatöri == ‘ dir. Yazılımcılar dalgınlık/unutkanlık ile if’lerde == yerine = (tek eşit) kullanırlarsa büyük bir mantık hatasına ve bug’a sebep olurlar. # root [...]