que he tenido bastante buena éxito la implementación de un cliente XMPP en Javascript utilizando HTTP Enlazar enfoque para XMPP BOSH. No sé sobre AMQP, pero para el acceso del lado del cliente, me encanta XMPP. Algunas palabras por qué.
ejabberd ya incluye compatibilidad con BOSH, y para usar con Javascript (y presumiblemente Flash) solo necesita dirigir su servidor para redirigir las solicitudes al puerto en el que configura ejabberd para escuchar solicitudes HTTP. (E incluso esto solo porque el modelo de seguridad Javascript en los navegadores actuales prohíbe las solicitudes de Javascript a diferentes dominios e incluso puertos diferentes.)
Dado que XMPP es un conjunto de pequeños documentos XML bastante triviales, debería ser bastante fácil codificarlos en cualquier idioma que elige.
Dado que es ampliamente compatible, es posible que evite que sus usuarios se registren en su servicio, lo cual seguramente apreciarán.
La implementación de XMPP significa que puede agregar trivialmente soporte de mensajería instantánea a su juego, con federación al resto de la red Jabber (incluyendo Google Talk).
Como no sé nada sobre AMQP, no puedo compararlos, pero puedo decir por qué siempre consideraré XMPP para mis futuros proyectos para varios jugadores.
Mi razón personal para la elección de ejabberd
es simple - es muy fácil de instalar y configurar en Debian. Estoy casi completamente familiarizado con Erlang y Java; Lo que entiendo, sin embargo, acerca de Erlang es que hace que la escalabilidad sea fácil de lograr, y ejabberd
personas dicen que lo han logrado.
Si desea hacer una verificación lógica del lado del servidor, me temo que no conozco ningún buen método. Me gustaría ir con un script proxy de PHP haciendo una comprobación de cordura en el mensaje entrante XMPP BOSH, y luego reenviándolo al servidor, en lugar de solo reenviarlo a través del mod_rewrite
de Apache.
Como se mencionó anteriormente, definitivamente tendrá que hacer proxy de algún tipo (con mod_rewrite
o con PHP o de alguna otra manera) ya que el servidor XMPP escuchará en un puerto diferente que el servidor web "principal", y Javascript el modelo de seguridad entre dominios no permite hacer XMLHTTPRequest
en un puerto diferente.
Por lo tanto, la verificación de la cordura podría ser más fácil al transmitir solicitudes BOSH al servidor XMPP de su elección. Indagar en el software del servidor podría no ser la mejor manera de hacer este tipo de comprobaciones. Tomaría mucho tiempo, y probablemente haría más difícil la integración con el resto de tu juego.
O bien, me encontré con una respuesta que menciona XMPP components and ejabberd modules. Esta será una lectura interesante para mí, también.
Buena suerte, y asegúrese de dejar un comentario con el nombre del juego cuando se hace - Me encantaría verlo :-)
simplemente me di cuenta de otra persona publicado una very similar question a tí. Sus respuestas contienen información más interesante para usted.
Sobre el uso de XMPP con Flash:
Se podría utilizar, sin embargo, HTTP (BOSH) que se une con Flash. De hecho, aunque el enlace HTTP permite que Javascript acceda a XMPP, fue concebido para una variedad de aplicaciones, como conexiones móviles que a menudo pueden romperse.
Principalmente descubrí cómo establecer la conexión al observar las comunicaciones entre el cliente basado en web JWChat y ejabberd (para información sobre BOSH) y luego las comunicaciones entre el cliente multiplataforma Psi y ejabberd (para información sobre el protocolo en sí). Con Web Inspector de JWChat y WebKit o con Firebug para Firefox, uno puede rastrear fácilmente XMLHttpRequests hacia el servidor. Con Psi, uno puede activar la consola XML y leer el registro de comunicaciones. Combinado con la creación de prototipos de un cliente en el idioma de su elección, estudiar BOSH y XMPP resultó ser muy fácil.
Además, los siguientes XEP son útiles: XEP-0124, XEP-0206.
O'Reilly libro que estoy leyendo en este momento, "XMPP: The Definitive Guide" (P. Saint-Andre, Kevin Smith, Remko Tronçon; mucho más barato on Apple's App Store) también le da la sensación de "¿por qué se hacen las cosas como son", y documenta muchas cosas pequeñas y diversas aplicaciones de XMPP.
Después de eso, la implementación de un cliente basado en BOSH podría resultar bastante fácil.No tengo experiencia con la codificación con Flash aparte de hacer que un botón se reproduzca y pause, así que tome esto con un grano de sal :-)
XAMPP/LAMP/etc no tienen nada que ver con el JavaScript del lado del cliente. Apache y otros servidores son lo que estás buscando. –
@Coronatus! Gracias por tu comentario, pero estoy seguro de que has pasado por alto lo que quise decir. El Protocolo Extensible de Mensajes y Presencia (XMPP) es de lo que estoy hablando. – Devyn
Lo siento, confundí "XMPP" con "XAMPP". Ignora mi comentario :) –