Documentación / Guías / Modo sin conexión
Especificación del protocoloReferencia de la APIGuías
Documentación / Guías / Modo sin conexión
GUIDE · V1

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.