2010-10-26 13 views
6

Tengo una aplicación para iPad que funciona tanto en línea como fuera de línea, pero cuando estoy fuera de línea hay llamadas al servicio web que deberán realizarse una vez que la disponibilidad en línea sea nuevamente una opción.cola de mensajes para iOS/iPad, algo así como MSMQ?

Ejemplo: Se ha agregado un nuevo cliente a la aplicación, este debe enviarse al servicio web, pero como no estamos conectados no queremos retrasarlo, así que los agregamos localmente y seguimos adelante, pero necesitamos recordar que esa llamada debe hacerse al servicio web cuando podamos. Lo mismo para hacer pedidos y tal.

¿Hay algún tipo de cola que se pueda configurar que se activará una vez que tengamos la conectividad?

Respuesta

3

No creo que la sobrecarga de una herramienta pesada como MSMQ sea necesaria para una acción simple. Puede utilizar los Datos básicos, conservar los objetos gestionados con los datos necesarios para llamar al servicio web y solo eliminar cada objeto gestionado después de una publicación correcta. Puede haber o no una forma de capturar un evento cuando se inicia la conectividad, pero ciertamente puede crear un NSTimer repetitivo cuando el primer mensaje esté en cola y detenerlo cuando no haya mensajes en la cola.

+0

la cola es mi pregunta, en busca de un poco de orientación sobre la forma de lograrlo. no estoy seguro de cómo poner en cola las llamadas de función. Acabo de usar MSMQ como ejemplo porque lo he usado en el pasado. – Slee

+0

Acabo de decir cómo hacer una cola. :-) Usar datos básicos. Cualquier colección ordenada es efectivamente una cola. Obtener uno, procesarlo, eliminarlo. Incluso podría poner en cola las llamadas a funciones, pero probablemente no sea necesario, ya que su hilo de procesamiento puede saber a qué función llamar en función de los datos que obtiene. –

+0

nada como pasar por alto lo obvio, ¡gracias! – Slee

1

Esta biblioteca maneja las colas de mensajes persistentes sin conexión para situaciones como las que usted describe. Dice alfa respecto a hace un año, pero me han confirmado que se utiliza en aplicaciones de producción:

parte

https://github.com/gcamp/IPOfflineQueue

Cuestiones relacionadas