2010-03-10 5 views
9

que necesita un servidor para enviar y recibir mensajes XMPP de los clientes Android con un juego de varios jugadores que estoy escribiendo. Escogí XMPP porque no quiero hacer una encuesta larga y los Sockets pueden ser un problema en la red celular (los operadores pueden bloquearlos).servidor XMPP Súper simple o consejos para una simple costumbre componente Openfire

Si bien suena increíble, no necesito un panel de administrador Chat de voz, salas de chat, etc. parece muy pesado y orientado hacia una solución de chat para las empresas cuando todo lo que necesito es hacer coincidir los jugadores y pasar sus movimientos el uno al otro registrando una puntuación al final. ¿Existe una versión reducida de OpenFire, así que solo puedo registrar un componente que atenderá todas las solicitudes? En cuanto a la adaptación con openfire, no puedo encontrar un ejemplo claro de agregar un componente personalizado para realizar una tarea similar.

Lo que necesito es una biblioteca existente o servidor simple que puedo correr y registrar mi mensaje de escucha personalizado a. Solo necesito poder atender las solicitudes que lleguen y responder adecuadamente. Espero que no tenga que escribir la gestión de subprocesos, ya que ese problema es común en un servidor de chat típico, pero sí necesito escribir el código para interpretar y responder a los mensajes enviados.

espero que esto tenga sentido, cualquiera que haya escrito un pedazo de código de servidor tal me encantaría un ejemplo. Para aquellos de ustedes que no lo han intentado pero que tienen una idea de cómo comenzarían, ¡por favor también participen! Cuanto más detalles, mejor.

Gracias de antemano,

Gav

+0

El servidor debe ser solo Java? ¿Tomó AMQP en cuenta? – clyfe

Respuesta

7

Puede usar casi cualquier servidor XMPP; Sé que Openfire funcionará, o también recientemente utilicé Prosody, que es muy liviano y fácil de instalar (en Linux).

Lo que desea es un componente independiente que se comunique con su servidor XMPP (y por lo tanto puede llegar a sus usuarios) utilizando el XMPP component protocol. Ahí es donde radica la inteligencia del juego.

Véase mi respuesta anterior a una pregunta muy similar para más detalles:
XMPP C# Interaction

Otro gran lugar para buscar información es algo escrito por Jack Moffitt, que creó chesspark.com (ya adquirido por chess.com por lo no disponible) — un sitio que coincide con los usuarios de ajedrez y los juegos controlados que utilizan XMPP.

Ver esta entrada del blog como punto de partida:
http://metajack.im/2008/11/21/chesspark_design_details_part_1_why_xmpp/

1

Usted debe ser capaz de lograr esto con OpenFire (u otros servidores XMPP) de la caja si son compatibles con pubsub. No estoy seguro de los detalles de sus necesidades, pero creo que Personal Eventing Protocol o su superconjunto PubSub debería ser capaz de manejar su caso de uso. OpenFire admite ambos protocolos.

Si éstos no son compatibles con su caso de uso, a continuación, un custom plugin es bastante fácil de escribir.

En cuanto al peso pesado o ligero, menos que tenga algún específicamente pequeño entorno para ejecutar el servidor, lo dudo importará. Simplemente no usará muchas de las características que existen.

he utilizado XMPP pubsub para que los clientes se comunican entre sí a las acciones que los usuarios pueden obtener actualizaciones en vivo de lo compañeros de trabajo en un grupo están trabajando.

+0

Ah, solo ejecute un servidor OpenFire de fábrica y, en la misma máquina, ejecute un cliente 'gameserver @' y pida a los jugadores que envíen los mensajes del juego a ese cliente. Eso podría funcionar, ¿es eso lo que querías decir? Necesito información centralizada; no se trata solo de pasar el mensaje del cliente al cliente. Por ejemplo, el tablero de juego es aleatorio y tengo que emparejar a los jugadores de alguna manera. – gav

+0

No. No tengo idea de qué quiere decir ejecutando un cliente en la misma máquina para enviar mensajes. Asumo que el juego es el cliente. – Robin

+0

@Robin: lo que quiere decir es que es un Cliente XMPP que puede escuchar mensajes de Openfire. –

4

Si desea un servidor XMPP rápido, ligero, tratar Prosody. Las otras respuestas son correctas, sin embargo, en eso querrá mirar primero al PubSub, luego escribir su propio component, antes de agregar funcionalidad directamente al servidor.