SORU
2 Mart 2009, PAZARTESİ


PHP ile kullanarak comet?

Gerçek zamanlı bir PHP arka uç kullanarak sohbet uygulama düşünüyordum, ama bir site kuyruklu yıldız üzerinde tartışarak bu yorum karşılaştım:

Benim anlayışıma göre bir PHP olmasıdır Kuyruklu yıldız için berbat bir dil, çünkü Kuyruklu yıldız bir tutmak gerekir kalıcı bağlantı her açık tarayıcı istemcisi. Kullanarak bu mod_php Apaçi çocuk birleştirmek demektir tam zamanlı her müşteri için tüm ölçek yok. İnsanlar ben işin Comet şeyler çoğunlukla biliyor hangi Twisted Python kullanılarak tasarlanmıştır yüzlerce işlemek için veya binlerce eşzamanlı bağlantı.

Bu doğru mu? Ya da etrafında yapılandırılabilir bir şey mi?

CEVAP
23 Kasım 2009, PAZARTESİ


Zaten ne kabul/genişleyen, ağ herhangi bir işlem sorunu çözecektir sanmıyorum " dedi.

Apache

Apache her istek talebi COMET istekleri için uzun bir zaman olabilir tamamlanıncaya kadar bir iş parçacığı kullanır.

This article on Ajaxian zor olduğu Apache üzerinde KUYRUKLU yıldızı kullanarak, ve bahseder. Bu sorun, belirli bir PHP için değil, ve arka uç modülü Apache üzerinde kullanmak isteyebilirsiniz herhangi bir CGI için geçerlidir.

Önerilen çözüm yolu, istek işçi iş parçacığı için gönderilen 'event' MPM module kullanmak için.

Bu MODÜL düzeltmek için çalışır 'hayatta problem' HTTP. Bir istemci ilk tamamlandıktan sonra isteği, istemci tutabilir bağlantıyı açın ve göndermek daha fazla aynı soket kullanarak ister. Bu signifigant yükü kaydedebilirsiniz TCP bağlantısı oluşturmak. Ancak, Apache geleneksel olarak bir bütün tutar alt süreç/thread veri bekliyor kendi getiren müşteri, dezavantajları. Bu sorunu çözmek için, bu MODÜLÜ için adanmış bir iş parçacığı kullanır hem Dinleme yuva ve idare bir bütün yuva yaşatmak devlet.

Ne yazık ki, bu sadece çünkü o da işe yaramaz'' . erteleme ^em>sonrabir isteği tamamlamak, istemciden yeni bir talep bekliyor.

PHP

Şimdi düşününce diğer tarafı sorunu bile çözmek sorunu ile tutan bir iş parçacığı başına comet isteği, sen hala bir PHP parçacığı başına isteği - bu yüzden ağ herhangi bir işlem işe yaramaz.

Neden onlar olayı gözlenen kuyruklu yıldızı istekleri devam edilmesini sağlayan Continuations gibi bir şey lazım. AFAIK, bu PHP mümkün olan bir şey değil. Sadece Java gördüm - Apache Tomcat server bkz.

Düzenleme:

Var article here kullanarak bir yük dengeleyici (HAProxy) izin çalıştırmak için de bir apache server ve bir kuyruklu yıldız-etkin sunucu (örneğin, jetty, tomcat Java) üzerinde port 80 aynı sunucu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • knopik96

    knopik96

    7 Mayıs 2011
  • Peyton

    Peyton

    28 Aralık 2008