Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 18/09/13, 06:44:03
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
consulta servicio web

Saludos gente , queria hacer una consulta sobre una app que tengo relacionada con un foro de phpb3 , esta aplicación para actualizar datos hace consultas a unos php que hice expresamente cada segundo , esto , me da la impresión que supone un coste energético de batería alto para el dispositivo y me gustaría saber de otras opciones para poder hacerlo sin que sea el dispositivo el que realice todo el trabajo.

He leído algo sobre los servicios web y notificaciones push , porque mi app lo que hace es notificar según usuario cuando hay mensajes nuevos y demás... , yo puedo implementar esto en un foro de estas características , haciendo que tenga acceso a la base de datos del foro?

gracias.

Última edición por rafaxplayer Día 18/09/13 a las 19:42:58
Responder Con Cita


  #2  
Viejo 19/09/13, 11:39:36
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Alguien sabe del tema?
Responder Con Cita
  #3  
Viejo 19/09/13, 12:00:58
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Abrir una conexión nueva cada segundo no solo fríe la batería sino probablemente el foro como tengas muchos usuarios.

La técnica habitual es dejar una conexión abierta, enviando algún dato de vez en cuando para que no se cierre, y dejar al servidor que sea el que envíe la información cuando haga falta.

Eso es lo que hace Google con su servicio de mensajería GCM (Google Cloud Messaging), tiene una conexión abierta a sus servidores todo el tiempo sin apenas tráfico, salvo cuando hay que notificar algún evento.

Podrías integrar GCM con el foro y tu app, dado que los usuarios ya están registrados en la base de datos solo tendrías que añadir el identificador de GCM del usuario, para que cuando haya que notificar algo puedas enviar la notificación.

http://developer.android.com/google/gcm/index.html

La notificación puede ser simplemente un evento que indique a la app que hay novedades, y ya tu app se actualice como siempre estableciendo la conexión al foro.
Responder Con Cita
  #4  
Viejo 19/09/13, 14:40:18
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
ok, si eso estoy barajando implementar GCM , lo que mas duda me genera es como integrarlo a nivel servidor en mi foro , he leído por hay ejemplos que escriben una app en asp.net y demás , necesito un norte en este sentido , a nivel dispositivo lo veo todo mas claro... gracias.
Responder Con Cita
  #5  
Viejo 19/09/13, 14:52:49
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
A grandes rasgos, el servidor tiene que saber cuál es el identificador de GCM del usuario al que quieres notificar (así si le llega un mensaje del foro, que pueda consultar en la base de datos a quién enviar la notificación). Conocido el identificador, simplemente abres una conexión con el API de GCM (HTTPS), pasas los parámetros de autenticación necesarios, el identificador, el cuerpo de la notificación y ya está, GCM se encarga de la entrega y almacenamiento en caso necesario.

Aquí discuten cómo hacerlo en PHP: http://stackoverflow.com/questions/1...loud-messaging
Responder Con Cita
  #6  
Viejo 19/09/13, 19:45:56
Avatar de rafaxplayer
rafaxplayer rafaxplayer no está en línea
Miembro del foro
Mensajes: 224
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
aja , solo una cosa mas , como seria si por ejemplo tengo 1000 dispositivos con usuarios registrados en la base , saber si tienen mensajes nuevos es una consulta php por usuario , debería hacerla cada poco tiempo si quiero que no sea muy retardada la información, como harías esto? un temporizador que haga consultas de todos los usuarios para saber si tienen post nuevos desde su ultima visita? esto a nivel servidor tambien seria costoso no? un temporizador funcionando siempre...
Responder Con Cita
  #7  
Viejo 19/09/13, 19:56:29
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
La idea de usar notificaciones es no andar pidiendo actualizaciones al servidor y que sea él mismo el que notifique. Cualquier sistema de foros permite notificar por email, sería añadir la funcionalidad para notificar por GCM, ya sea como plugin, usando el API que tenga el sistema de foros o modificando su código.

Si no puedes tocar el código del servidor es un problema, ahí sí tendrías que consultar periódicamente los cambios, aunque no desde la app sino de un script en el servidor, que ya sería un progreso respecto del caso inicial.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 23:24:42 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007