2012-02-13 12 views
7

Voy a crear una aplicación de chat de Android. En realidad, el chat será una característica de la aplicación. Quiero saber cuáles son las mejores prácticas con respecto a las aplicaciones de chat con Android. Las dos opciones con las que estoy familiarizado son C2MD y solo un sondeo personalizado del servidor db cada pocos segundos.¿Cuáles son las mejores prácticas para crear una aplicación de chat en android

Ahora, sé que se supone que C2MD es genial y todo, pero desde mi punto de vista no es tan confiable. Intenté implementarlo y parece que no funciona. Además, si por alguna razón algo sucede en el final de Google (como sus servidores están caídos, no es probable, pero podría suceder) no tengo forma de contactarlos, y estoy en su marco de tiempo.

Ahora, si hago lo mío (un enfoque básico en el que envío el mensaje que el usuario crea, y luego reviso periódicamente el servidor para ver si han llegado mensajes nuevos) parece correcto, excepto para tener un La experiencia del usuario, mi encuesta de mi servidor tendría que ser como 5 segundos más o menos, y eso va a masticar la batería como loco. Este es realmente mi principal inconveniente al usar este enfoque.

Entonces, me pregunto si hay una mejor manera de salir de la que no tengo conocimiento. Por favor, cualquier ayuda, estructuras de arquitectura, cualquier cosa sería útil.

Respuesta

8

Debería ver usar XMPP. Puede buscar StackOverflow para Android XMPP y probablemente terminará en here, que recomienda usar alguna variante de Smack (una biblioteca cliente XMPP).

actualización para resolver los comentarios:

En primer lugar, es un protocolo XMPP, no un cliente o servidor. Una de las ventajas de usarlo es que hay implementaciones de servidor y cliente XMPP ampliamente disponibles. El Wikipedia article atiende la mayoría de sus preguntas.

En cuanto a su comentario en gtalk:

La arquitectura de la red XMPP es similar al correo electrónico; cualquiera puede ejecutar su propio servidor XMPP y no hay un servidor maestro central.

En cuanto sondeo:

XMPP podría utilizar HTTP de dos maneras:. Polling [21] y de unión [22] El método de sondeo, actualmente en desuso, implica esencialmente que los mensajes almacenados en una base de datos del servidor son extraídos (y publicados) regularmente por un cliente XMPP a través de las solicitudes HTTP 'GET' y 'POST'. Con el enlace HTTP, el cliente utiliza conexiones HTTP de mayor duración para recibir mensajes tan pronto como se envían. Este modelo de notificación push es más eficiente que las encuestas, donde muchas de las encuestas no devuelven datos nuevos.

También puede usar WebSockets.

Con respecto a la integración con .NET (si lo necesita ... si no lo hace, puede ejecutar su propio servidor XMPP), puede buscar StackOverflow para XMPP y .NET y puede obtener algunas preguntas/ideas en torno a la integración del servidor .NET con servidores XMPP, como con esta pregunta: Opensource .Net Jabber/XMPP server?

+0

bien, ¿así que XMPP habla con un servidor de Windows/.NET? ¿Cómo lo haces para hablar con tus propios servicios web? Además, ¿recibe mensajes sin tener que sondear el servidor cada cierto tiempo? No estoy familiarizado con XMPP y tengo google pero realmente no tengo una buena definición. – user638049

+0

Esto no será para gtalk.Será un programa de chat de terceros que estoy creando. Presentaré mis propios servicios web y almacenaré todos mis mensajes de chat. – user638049

+0

Actualizado para sus comentarios. – kabuko

Cuestiones relacionadas