Ben XMPP Bosh HTTP Bind yaklaşımı kullanarak JavaScript bir XMPP istemcisi uygulama oldukça iyi bir başarı elde ettik. Ben AMQP hakkında bilmiyorum, ama istemci tarafında erişimi için, ben XMPP seviyorum. Bir kaç kelime neden.
ejabberd zaten Bosh desteği içerir ve JavaScript (ve muhtemelen Flaş) ile kullanmak için sadece HTTP istekleri dinlemek için ejabberd yapılandırmak hangi noktasına isteklerini yönlendirmek için sunucu doğrudan gerek. (Ve hatta bu bugünün tarayıcılarda JavaScript güvenlik modeli farklı etki ve hatta farklı limanlarına JavaScript isteklerini yasaklamaktadır çünkü sadece.)
XMPP oldukça önemsiz küçük XML belgelerinin bir demet olduğundan, seçtiğiniz herhangi bir dilde onları kodlamak oldukça kolay olmalıdır.
Yaygın olarak desteklenen bu yana, onlar kesinlikle takdir edecektir servis, kayıt için kullanıcılar gerektiren önlemek mümkün olabilir.
XMPP uygulamak size trivially (Google Talk dahil) Jabber ağın geri kalanı için federationing ile, oyunun anlık mesajlaşma desteği eklemek anlamına gelir.
Ben AMQP hakkında hiçbir şey bilmiyorum, çünkü ben bunları karşılaştırmak değil - ama her zaman ilk benim gelecekteki çok oyunculu projeler için XMPP dikkate edeceğiz niçin diyebilirim.
Seçmek için benim kişisel neden ejabberd
basittir - yüklemek ve Debian üzerinde yapılandırmak için süper kolay. Ben Erlang ve Java ile neredeyse tamamen yabancı değilim; ne Erlang hakkında, ancak, anlamak bunu başarmak için ölçeklenebilirlik kolay olduğunu, ve ejabberd
insanlar bunu elde söylüyorlar.
Eğer sunucu tarafı mantık denetimi yapmak istiyorsanız, ben iyi bir yöntem bilmiyorum korkuyorum. Sonra yerine sadece Apache mod_rewrite
yoluyla iletme, sunucuya yönlendirme, gelen XMPP Bosh mesajı kontrol aklı yaparken bir proxy PHP ile gitmek istiyorum.
Yukarıda belirtildiği gibi XMPP sunucusu "ana" web sunucusu farklı bir port dinleme çünkü, kesinlikle (mod_rewrite
ile veya PHP ile veya başka bir şekilde) çeşit vekili yapmak zorunda olacak, ve Javascript çapraz etki alanı güvenlik modeli, farklı bir bağlantı noktasına XMLHTTPRequest
yaptığını izin vermez.
Seçtiğiniz XMPP sunucusuna Bosh istekleri geçişi sırasında Yani, aklı kontrol kolay yapılabilir. Sunucu yazılımının içine kazma çeklerin bu tür yapmak için en iyi yol olmayabilir. Uzun alacağını ve muhtemelen oyunun geri kalanı ile entegre etmek zor olur.
Alternatif olarak, ben XMPP components and ejabberd modules bahseder cevap tökezledi. Bu da, benim için ilginç bir okuma olacaktır.
İyi şanslar, ve bitti oyunun adı ile bir yorum bırakın emin olun - Ben :-) görmek isteriz
Ben sadece bir başkası senin için bir very similar question yayınlanmıştır fark ettim. Onun cevaplar sizin için biraz daha ilginç bilgi içerir.
Flash ile XMPP kullanımı hakkında:
Sen yine de Flash ile (Bosh) bağlama HTTP kullanabilirsiniz. Aslında, HTTP bağlama sırasında böyle sık mola mobil bağlantıları gibi uygulamalar, çeşitli için tasarlanmıştı, Javascript XMPP erişmenizi sağlar.
Ben çoğunlukla web tabanlı istemci JWChat ve (Bosh hakkında bilgi için) ejabberd, ve sonra (protokolün kendisi hakkında bilgi için) çapraz-platform istemci PSi'ye ve ejabberd arasındaki iletişim arasındaki iletişimi gözlemleyerek bağlantı kurmak için nasıl anladım. JWChat ve WebKit Web Müfettiş veya Firefox için Firebug ile kolayca sunucu doğru yapılıyor XMLHttpRequest'lerinin izleyebilirsiniz. Psi ile, bir XML konsol açmak ve iletişim günlüğünü okuyabilirsiniz. , Sizin seçtiğiniz bir dilde bir müşteri prototip Bosh eğitim ve XMPP çok kolay olduğu ortaya çıktı ile birlikte.
Aynı zamanda, aşağıdaki XEPs yararlıdır: XEP-0124, XEP-0206.
Şu anda okuyorum O'Reilly kitabı, "XMPP: The Definitive Guide" (P. Saint-Andre, Kevin Smith, Remko Troncon; çok ucuz on Apple's App Store) da "size hissi verir neden şeyler onlar "olan yol ve küçük şeyler ve XMPP çeşitli uygulamaları birçok belge yapılır.
Bundan sonra, bir Bosh-tabanlı istemci uygulama oldukça kolay olduğu ortaya dönüşebilir. Ben ayrı bir düğme oyun ve duraklama yapmaktan Flash ile kodlama ile hiçbir deneyimi var, bu yüzden :-) inanmayarak bu almak