Modo sin conexión
Base de datos local, cola de pendientes, comportamiento de sincronización
Cómo funciona el modo sin conexión
La aplicación Escáner está diseñada para funcionar completamente sin conexión después de la inscripción inicial. Toda la validación de entradas (verificación de firmas, comprobación de expiración, detección de duplicados) se realiza localmente usando datos almacenados en caché. Solo el paso de confirmación del registro de entrada requiere conexión de red, e incluso ese se pone en cola si la red no está disponible.
Base de datos local
La aplicación mantiene una base de datos SQLite local con los siguientes datos:
| Datos | Propósito |
|---|---|
| Inscripciones | Eventos inscritos con claves API y asignaciones de puertas |
| Claves del emisor | Claves públicas almacenadas en caché para verificar firmas de entradas |
| Historial de escaneos | Registro de cada intento de escaneo y su resultado |
| Registros pendientes | Cola de registros de entrada esperando sincronización con el servidor |
| Estados de entradas | Estados de entradas almacenados en caché (revocadas, registradas) descargados del servidor |
Estos datos locales permiten al escáner validar entradas y detectar entradas ya usadas o revocadas incluso sin conexión a internet.
Cola de registros pendientes
Cuando marca una entrada como usada mientras está sin conexión, el registro se añade a una cola de pendientes.
Ver registros pendientes
Vaya a menú > Sincronización pendiente. El elemento del menú muestra un distintivo con el conteo de elementos pendientes.
Si no hay elementos pendientes, la pantalla muestra "Todo sincronizado."
Cada elemento pendiente muestra:
- Identificador de la entrada
- Nombre del evento
- Hora del último intento de sincronización (si se intentó un reintento)
Reintento manual
Toque Reintentar ahora para intentar sincronizar todos los registros pendientes inmediatamente. Esto es útil cuando sabe que la conexión se ha restaurado.
Sincronización automática
La aplicación intenta sincronizar automáticamente los registros pendientes cuando:
- Se restaura la conectividad de red después de estar sin conexión
- La aplicación vuelve al primer plano
No se necesita ninguna acción manual en la mayoría de los casos.
Sincronización de estados de entradas
La aplicación descarga periódicamente estados actualizados de entradas desde el servidor para cada evento inscrito. Esta sincronización:
- Se ejecuta en segundo plano cada pocos minutos
- También se activa cuando la aplicación vuelve al primer plano
- Descarga el estado actual de todas las entradas (cuáles están revocadas, cuáles ya están registradas)
Esto permite al escáner rechazar entradas revocadas o ya usadas incluso cuando está sin conexión, porque el último estado conocido se almacena localmente en caché.
Idempotencia
Cada registro de entrada se asigna un identificador único (clave de idempotencia) cuando se crea. Esto significa:
- Es seguro reintentar registros pendientes múltiples veces
- El servidor deduplica basándose en esta clave
- No hay riesgo de que una entrada se marque como usada dos veces debido a reintentos de red
Detección de conectividad
La aplicación monitorea la conectividad de red en tiempo real. Cuando la conexión se pierde:
- El escaneo y la validación continúan funcionando normalmente
- Los registros de entrada se ponen en cola localmente en lugar de enviarse al servidor
- El mensaje "Admitido (pendiente de sincronización)" aparece después de cada registro sin conexión
Cuando se restaura la conectividad:
- La cola de pendientes se vacía automáticamente
- Los elementos sincronizados exitosamente se eliminan de la cola
- El historial de escaneos se actualiza de "pendiente" a "válido" para las entradas sincronizadas
- Los elementos fallidos permanecen para el siguiente intento de reintento
Nota: Si está consultando el historial de escaneos mientras se completa una sincronización en segundo plano, es posible que deba salir de la pantalla y volver para ver los estados actualizados.
Buenas prácticas
- Inscriba su dispositivo mientras tenga conexión. La inscripción inicial requiere conexión a internet para descargar claves y estados de entradas.
- Sincronice antes de que comience el evento. Abra la aplicación mientras esté conectado para asegurarse de tener los estados de entradas y claves públicas más recientes.
- Verifique el conteo de Sincronización pendiente después del evento para asegurarse de que todos los registros de entrada se hayan sincronizado.
- No elimine un evento hasta que todos los registros pendientes se hayan sincronizado. La aplicación bloqueará la eliminación si existen elementos pendientes.