Ajax İle Sürekli İletişim

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    Facebook'u biliyoruz (hocam.com ve bir çok sitede de mevcut) sürekli host ile bağlantı halinde. Yeni bir mail geldiğinde falan direkt mesaj geliyor.

    FAcebook, javascript ve ajax'ın biraz bokunu çıkarttığından anlamakta zorlandığım kısım var ( iPhone notifications ta aynı şekilde ).

    --

    Şimdi ; bir check.php sayfası koysam. Bu sayfada gelen mail, mesaj, yenilikleri falan kontrol etse, varsa ona göre işlem yaptırsa , javascript timer ile her 30 saniyede bir ajax olayına girişsem nasıl olur ? Bu aklıma gelen en basit çözümü.

    -

    Fakat ; facebookta, bir işlem olduğunda geliyor. Yani mesaj geldiğinde hemen uyarıyor. 30 saniye beklediğini sanmıyorum. Yada her 5-10 saniyede bi check ediyor. Bunun çözersem, mesaj sisteminide hallederim. Yani her 3-4 saniyede bir check.php'ye ajaxla dadanmak var. Fakat daha bir sorgu bitmeden, yenisi başlar. Hadi bunuda sorgu bittikten sonra 3 saniye desek..

    -------

    durum kısaca bu mu ? nedir, ne değildir ? Başka mantığı var mı ?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    Facebook bildiğim kadarıyla arka planda c++ kullanıyor muhtemelen event tabanlı programlama yapmışlardır onun için

     

    Şurda bi örnek var mesela event tabanlı değilde compile edilmiş programın php içinde çağrılması 

    http://webhole.net/2010/03/21/c-plus-plus-php-and-jquery/


    Si vis pacem para bellum.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KodlayanAdam
    KodlayanAdam's avatar
    Kayıt Tarihi: 01/Ekim/2005
    Erkek

    hocam döngüye her 5-10 saniye de check etmesi hem client ı hem serverı yorar.

    Ajax ile uzun süreli bağlantı açıp tüm işlemleri ordan gerçekleştiriyorsun.

    aradığın yöntemin adı

    Reserve Ajax yada Server Push yada Comet diye geçiyor.

    3 de aynı şey aslında.

    şöyle de bi konum vardı. Asp.net le ilgili gerçi ama bi fikir verebilir.

    http://www.tahribat.com/Forum-Asp-Net-Reverse-Ajax-Server-Push-Comet-144310/


    Hiç savaş görmemiş çocuklarla, hiç barış görüşmemiş çocuklar için adalet farklı anlamlar taşır.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    asiminnesli
    asiminnesli's avatar
    Kayıt Tarihi: 19/Mart/2010
    Erkek

    ben aciz bilgimle şöyle yapardım check sistemini yapıp javascript ile setTimeOut ile (kontrolet(),2000) deyip her sn de bir tekrar kontrol etmesini isterdim ne kadar yvaştlatır bilemem tabi


    I am Jack's inflamed sense of rejection
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    şöyle bir şey yapılabilir. sayfada frame ile php çağırılıp o php içinde mesela 1 den 10000 kadar döngüye sokup her döngüden sonra flush ve ob_flush çekip anlık çıktı alınabilir o anlık çıktıda javascript olur parent.bilmemne diye güncelleme anlık yapılabilir. en son döngü bitincede sayfa kendini refreshler döngü tekrardan başlar.


    Bittik biz bittik
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    http://www.makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained/

    Şöyle bişey buldum facebook'un kullandığı teknolojiler diye aratınca diğer yöntemler muhtemelen çok yorar sistemi o yüzden event'lar olmadan o kadar hızlı çalışabilmesi çok zor gibi duruyor.

     

     

    Şurdada kullandıkları programları vs açıklamışlar developerlar için :

    http://developers.facebook.com/opensource/


    Si vis pacem para bellum.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    asiminnesli bunu yazdı:
    -----------------------------

    ben aciz bilgimle şöyle yapardım check sistemini yapıp javascript ile setTimeOut ile (kontrolet(),2000) deyip her sn de bir tekrar kontrol etmesini isterdim ne kadar yvaştlatır bilemem tabi


    -----------------------------

    benimde aklıma o geldi de, problem olacak sanırım. Mesela bağlantı gitti geldi birşeyler oldu ne hale gelir acaba.

    İçimden bi ses bu iş için baya bi javascript ve php kodlayacağım (kontroller) diyor.

     

    @ KodlayanAdam : teşekkürler Sharpshooter'a da mesaj attım. En azından yöntem adı vs.. öğrensme oda yeter. Hiç bir fikrim yok çünkü.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    doganaydin
    doganaydin's avatar
    Banlanmış Üye
    Kayıt Tarihi: 29/Ocak/2010
    Erkek

    En basiti long polling 'dir. Bir ara comet için php ape project vardı. Şimdi onlar da javascripte dönmüşler. Phpde bilmiyorum ama dil farketmez mantığı alırım dersen javascript v8 engine kullanan nodejs ve python tornadowebi inceleyebilirsin. Özellikle tornadoweb'in chat demosunu incelersen çok faydalı olacaktır. ape-project = http://www.ape-project.org/

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    doganaydin bunu yazdı:
    -----------------------------

    En basiti long polling 'dir. Bir ara comet için php ape project vardı. Şimdi onlar da javascripte dönmüşler. Phpde bilmiyorum ama dil farketmez mantığı alırım dersen javascript v8 engine kullanan nodejs ve python tornadowebi inceleyebilirsin. Özellikle tornadoweb'in chat demosunu incelersen çok faydalı olacaktır. ape-project = http://www.ape-project.org/


    -----------------------------

    nodejs projesini biliyorum. Sanırım en kolayı ona geçmek. 

    Fakat şu sıralar ciddi ciddi, django'ya geçmeyi düşünüyorum. Bu tür işler çok daha kolay. Bir gözümde php6 da.

    Zaman kaybetmemek isterken, 3-4 gün php 'nin buglarıyla uğraştım. Şimdide bu tarz şeyler var. Sıyırıcam artık. 

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    doganaydin
    doganaydin's avatar
    Banlanmış Üye
    Kayıt Tarihi: 29/Ocak/2010
    Erkek

    Django yu tornado serverda çalıştırabilirsiniz. Hatta hiç uğraşmadan proje php bile olsa real-time olacak kısmın back-end'ini python-tornado ile yazıp ajax ile php sayfalarda gösterebilirsiniz. Ayrıca pek tavsiye etmediğim websocketler de var. Ancak uyumsuz browserlardan dolayı çoğu kişi real-time bilgileri göremeyebilir. İkisini birden de kullanılabilir. Nodejs için socket.io veya python için tornado içinde websocket desteği kullanılabilir.

Toplam Hit: 3519 Toplam Mesaj: 16