Nasıl e-posta / sohbet itme iş yapar?

2 Cevap php

Ben nasıl itme hizmetleri çalışma anlamaya çalışıyorum. Ben sunucu istemci için yeni bir öğe 'iter' nerede bildirimleri vardır itmek inanıyorum, ama bu pratikte nasıl çalıştığını bilmiyorum.

Örneğin, nasıl bir telefon onu manuel olarak yeni bir mesaj için sunucu onay vermezse almak için yeni bir e-posta olduğunu "biliyor"?

Ayrıca, nasıl bu küçük bir web sitesi için bir sohbet programı ya da bildirim sistemi için uygulanabilir? Vb orada php sınıfları vardır.?

2 Cevap

Örneğin, nasıl bir telefon onu manuel olarak yeni bir mesaj için sunucu onay vermezse almak için yeni bir e-posta olduğunu "biliyor"?

PUSH uygulamaları protokole bağlı olarak değişir, ancak prensipler aynı kalır. Bir bağlantı istemci ve sunucu ve istemci yeni olayların sunucu tarafından bildirilir arasında açık tutulur. Bu, daha az bant genişliği kullanır ve tipik müşteri periyodik bekleyen herhangi bir yeni olay olup olmadığını soran sunucuya daha hızlı etkileşim yol açar.

Bir gösteri olarak, bu (IDLE olarak da bilinir) PUSH IMAP posta nasıl işliyor:

  1. İstemci, normal olarak e-posta sunucusuna kaydeder.
  2. Oturum açma işlemi sırasında sunucu IDLE yeteneğine sahip olduğunu tanıtır.
  3. İstemci, normal olarak bir kontrol ve yeni mesajların indir gerçekleştirir.
  4. Bunun yerine yeni iletiler için periyodik yoklama istemci IDLE komutunu verir.
  5. Sunucu ve istemci arasındaki oturumu sessiz kalır.
  6. Yeni posta geldiğinde ve sunucu bildirdiğinde bu mesajları EXISTS.
  7. İstemci daha sonra çıkış IDLE DONE ile mod ve bu mesajları indirebilirsiniz.
  8. 4. adımdan itibaren tekrarlayın.

Ben bir HTTP istemcisi bahsediyoruz varsayarak yaşıyorum? Genellikle Sunucu itme ya da Comet teknolojisi ile yapılır. Bunun yerine sadece bir sayfadan sonra HTTP bağlantısını kapatma yüklü istemciler sunucu push mesajları almak için açık bağlantı tutmak.

JQuery ile bunu yapmak için nasıl bazı ayrıntılar için this SO entry bakabilirsiniz.

Aksi takdirde Apache sunucu bağlantıları tükeneceğini bağlantıları sadece bir avuç daha beklemek eğer bir cometd sunucuya bakmak isteyebilirsiniz rağmen bazı examples for PHP web üzerinde bulunmaktadır.