Erlang ile Comet uygulamak ve PHP uygulaması için kullanabilirsiniz

7 Cevap php

Ben bir PHP web uygulaması inşa ediyorum ve ben yeni bir veri (hemen hemen FB gibi) uygun olduğu zaman, benim kullanıcıların güncellemeniz gerekir çünkü bir Comet sunucu oluşturmak için gereken bir noktaya ulaştınız. Ben web'de arama çok zaman geçirdim ve ben Comet sunucusu oluşturmak için en iyi yolu, Erlang ile inşa etmek bir sonuca geldim. Ayrıca ben apache-php isteği issue.So başına süreç, ben kuyruklu uygulama için hafif bir http sunucusu oluşturmak zorunda, çünkü bunu yapmak için bir iyi bir kombinasyon olmadığını tespit ettik.

Ben erlang dünyada tamamen acemi değilim ama erlang Comet sunucusu uygulamayı düşünüyor ve sadece istemcileri güncellemek için arayüz olarak işlev yapmak ediyorum. Benim web uygulaması fonksiyonlarının geri kalanı için, ben hala PHP ile bunları uygulamaya devam etmek istiyorum. Yani Erlang sunucuya istemcileri güncellemek ve apache-php sunucuya diğer istekleri yönetmenlik isteklerini yönlendiren.

Çok komplike görünüyor. Ben yeni bilgi olduğunda gibi birlikte çalışmak için Comet sunucu ve nasıl iki dilde birleştirmek için (Erlang ve php) bina uğruna erlang öğrenmek için en iyi yolu nedir bilmek gerekir. müşterilerine itti, ben Comet mevcut yeni değişiklikler yapmak gerekir ve daha sonra kullanıcılara bilgi iter. Peki nasıl php ve Erlang yararlanabilir ve onları birlikte çalışmaya yapabilirsiniz.

Uzun açıklama için özür dilerim ama ben gerçekten yardım adamlar ve öğrenmek ve ne istediğimi uygulamak bana verebilir herhangi bir rehberlik gerekir. Şimdiden teşekkürler ederim.

EDIT: Should I consider learning Python and Twisted to accomplish what I want?

7 Cevap

Bu Erlang ile bunu yapmak kesinlikle mümkün. Bir olasılık mochiweb ile yapabileceğiniz uzun yoklama, kullanmak olacaktır. http://code.google.com/p/mochiweb/

Başka bir fikir soketleri kullanmaktır. Web prizler tarayıcıları bir makul sayıda tarafından desteklenen kadar, bir TCP bağlantısı oluşturmak için bir flaş "köprü" kullanmak zorunda ve sunucu ile iletişim kurmak için javascript kullanacağız. Web yuva JS bir göz atın: http://github.com/gimite/web-socket-js

http://www.math-hat.com/~zukerman/projects/php-erlang/: Bu kurduktan sonra, böyle bir şey ile Erlang süreçleri ve PHP arasındaki iletişim kurabilir

Hala Erlang bir acemi iseniz Sonra tekrar, belki Python ve Twisted veya Tornado ile uzun vadede zamandan tasarruf edeceksiniz.

Sen oldukça hızlı Erlang öğrenebilir, gen_server, gen_event ve OTP gelen bu tür bir şey gibi şeyler kullanmak gerekir. http://www.erlang.org/doc/index.html: Erlang öğrenmek için en hızlı yolu olarak dokümantasyon ve örnekler yoluyla şekilde çalışmak olmalıdır.

PHP ve Erlang arasındaki iletişim için, PHP tarafında fsockopen prizler, () ve dinlenme kullanabilir ve Erlang tarafında gen_tcp. Sen PHP tarafında Zati boruyu gönderdi Erlang şartlarını ayrıştırmak (http://ftp.sunet.se/pub/lang/erlang/doc/apps/erts/erl_ext_dist.html).

Ben Erlang ve PHP kullanılan hiç ama sadece UI oluşturmak için PHP kullanarak, sadece her şey temiz tutmaya çalışın ve Erlang tarafta devlet tutmak, oldukça kolay olmalıdır PHP bilerek, bazı başarı ile Erlang ve Python kullanılmıştır.

Apache + php gerçekten kuyruklu yıldız tarzı uygulamalar için kötü bir teknolojidir. Ruby, Python ve Perl tüm kullanılabilir olmalıdır: Gerçi php yakın olan diğer teknolojileri bir çok kullanabilirsiniz. Eğer gerçekten isterseniz, muhtemelen php aswell soketli sunucu çeşit yazabilirsiniz, ama ben muhtemelen işe alma konusunda bahse girmezdim. Bu Erlang iyi bir seçim olmadığını söylemek değil, ama daha mainstream alternatifler vardır.

Eğer bir ana dilini kullanmak istemiyorsanız, bazı çok etkileyici kriterler çalıştığı, node.js kontrol etmek de emin olun. Artı zaten javascript biraz biliyor olabilir.

Python ve Twisted düşünüyor iseniz yörüngesinde bir göz atabilirsiniz. Onlar çok olgun Comet uygulama var. Sen yörüngesinde STOMP protokolü aracılığıyla PHP uygulaması ile iletişim kurmak için yapabilirsiniz.

This article has a decent tutorial which will get you started with Orbited http://thingsilearned.com/2009/06/09/starting-out-with-comet-orbited-part-1/

PHP ile uygulama entegre PHP STOMP müşteriler için google gerekir

Bir addtional seçeneği (http://pushmodule.slact.net/) Nginx ve itme modülü kullanmak

Bu, yeni bir dil öğrenmek için gerek kalmadan PHP Comet kullanmanızı sağlayacak.

Sen Yaws içine bakmak gerekir. Bu, bir on yıl için yaklaşık edilmiş bir Erlang web sunucu değil, son derece istikrarlı ve hala etkin geliştirme ve bakım altında olan, ve destekleyen uzun yoklama, PHP uygulamaları, WebSockets, ve çok daha fazlası - sen-ebil istemek hemen hemen her şeyi.

Yaws kaynaklar github vardır ve e-posta listesi here olduğunu.

, Sen (aslında çok kolay, güçlü ve savaş kanıtlanmıştır) OTP denilen şey somun ve civata bilmek zorunda değilsiniz kullanarak ... Chicago Boss çerçeve here çalışın çünkü Chicago Boss tasarımcısı , öğretici göre ... güzel çevrelemek için başardı.

Ben OTP öğrendikten sonra, hemen şimdi öğreniyorum.