2011-09-15 20 views
5

Como parte de una aplicación de Android que estoy desarrollando, hay una función de sala de chat. Tenemos un servidor que puede procesar los mensajes entrantes y almacenar los mensajes. ¿Es mejor mantener abierta una conexión de socket entre el teléfono y el servidor para que el servidor pueda enviar mensajes nuevos al teléfono, o es mejor que el teléfono busque nuevos mensajes de chat en el servidor?Android - Sockets vs Polling

Respuesta

1

El sondeo carece de conexión en tiempo real y una conexión persistente consume batería. Creo que lo que estás buscando es una combinación de conexión "push" y persistente. Despertaría su teléfono mediante push y luego establecería una conexión a través de sockets para manejar el chat.

Sugiero leer el artículo this. No estoy seguro de si menciona c2dm, el servicio de inserción de Google.

+0

¿Puede calificar su afirmación "La conexión persistente consume batería?" – AgileYogi

+0

"La conexión persistente consume batería" porque mantener una conexión abierta significa que necesitará un uso constante de los recursos. – kuchi

3

Es una mala solución con encuesta para la aplicación que tienen datos de publicación aleatoria. Lo que quiero decir es que los datos de sondeo son útiles cuando tienes algo que está sucediendo discretamente, como cada 5 minutos o algo así. este no es el caso con el chat, algunos usuarios pueden publicar algo queridos en una hora, algunos pueden enviar 30 veces en 2 minutos

a fin de mantener sus tomas abiertas

0

me quedo con el socket abierto si usted está preocupado acerca de mensajería instantánea, lleva tiempo configurar la conexión de socket, especialmente si está utilizando la conexión GSM. He visto que toma 10 segundos o más abrir un socket en 3G, y mucho menos si está conectado a WiFi.