Tecnología

Tiempo real, sin conexión, pantallas antiguas: cómo está construido

Un cambio de playlist llega a la pantalla en pocos segundos, la difusión continúa cuando falla la red, y una pantalla comprada hace ocho años sigue siendo compatible. Estos son los mecanismos que lo permiten, y lo que cuestan.

Control en tiempo real — la plataforma y la pantalla

Demostración

A usted le toca — Amplíe, gire, aplique un efecto: la pantalla lo sigue, y la plataforma le devuelve lo que muestra.

Pantalla «Hall de acogida»

Ficha de pantalla · Hall de acogida En línea
Visto en directo
Zoom×1.00
Rotación del contenido
Efecto
Animación

Cada ajuste se aplica de inmediato en la pantalla — sin redespliegue, sin intervención presencial.

La miniatura «Visto en directo» es una captura real de la pantalla devuelta por el player, no una vista previa local: usted ve lo que se está difundiendo, incluso a mil kilómetros. Escena de demostración, vídeo simulado.

Cast de pantalla — del teléfono a la pantalla de la sala

Demostración

A usted le toca — Introduzca el código mostrado en la pantalla, elija qué comparte, difunda: el teléfono reproduce entonces lo que ve la sala.

Compartir pantalla

Salle Confluence

Abra smart-signage.app/cast
y luego introduzca el código

K7F2

Pantalla «Sala Confluence» — playlist en curso

Castsmart-signage.app/cast

Código mostrado en la pantalla

Compartir

El uso compartido pasa por el navegador, en WebRTC: nada que instalar en el teléfono ni en el ordenador, y ningún cable que conectar a la pantalla. El código cambia en cada sesión. Demostración — el flujo de vídeo es simulado.

El tiempo real: empujar, en lugar de consultar

La forma habitual de actualizar una pantalla consiste en hacer que consulte al servidor a intervalos fijos: cada cinco minutos, cada quince minutos. El contenido acaba llegando, pero con el retraso del ciclo en curso, y cada pantalla consume red incluso cuando nada ha cambiado.

Smart-Signage funciona al revés. La plataforma mantiene un canal permanente hacia cada pantalla, mediante Server-Sent Events, y empuja el evento en el momento en que se produce. Modificas una playlist o una programación: el cambio sale de inmediato y la pantalla lo aplica en pocos segundos. No hay ningún ciclo de refresco que esperar, y nada circula mientras nada se mueve.

Esta elección compromete a la infraestructura. Hay que mantener un gran número de conexiones abiertas permanentemente, lo cual no es el régimen de funcionamiento para el que un servidor web está configurado por defecto. El proxy inverso Caddy se eligió, entre otras cosas, por su comportamiento en estas conexiones largas.

El canal funciona en ambos sentidos, y es lo que hace honesta la supervisión:

  • cada pantalla emite un latido regular, que indica que está viva;
  • la plataforma muestra el estado real del parque, pantalla por pantalla: en línea, en silencio, y lo que cada una está difundiendo en ese instante;
  • una pantalla que deja de emitir se vuelve visible de inmediato, sin que nadie tenga que desplazarse para comprobarlo.

Cuando la red falla, y cuando una actualización sale mal

Una pantalla que depende de la red es una pantalla negra en potencia. Por eso los contenidos se guardan en caché local mediante un Service Worker: si la conexión desaparece, la difusión continúa con lo que ya está ahí, y la pantalla se resincroniza en cuanto vuelve la red. Nadie tiene que intervenir in situ.

Una restricción del terreno impone aquí una precaución que conviene nombrar: las WebView de Android limitan el tamaño de los archivos que aceptan guardar en caché. Un vídeo pesado cargado de un solo bloque supera ese límite y nunca se guardaría en caché, por tanto nunca estaría disponible sin conexión. Por esta razón, los contenidos grandes se leen por tramos sucesivos en lugar de de una vez. Es esta división la que hace que el modo sin conexión sea realmente fiable en este tipo de hardware.

El segundo riesgo no es el fallo de red, es la actualización en sí. Un supervisor escrito en JavaScript ES5 se ejecuta antes que el código de la aplicación y controla el Service Worker. Si tres arranques consecutivos no son sanos, la pantalla vuelve por sí sola a la última versión sana conocida. Un mecanismo de seguridad limita además las recargas automáticas a dos por minuto, para descartar el escenario de la pantalla que parpadea en bucle. Consecuencia concreta: un despliegue fallido no bloquea un parque instalado, se repara solo.

Un parque existente no es un parque para desechar

Este es el punto en el que menos cedemos: el software se adapta al hardware presente, no al revés. El player se entrega en dos versiones surgidas del mismo código fuente, una versión moderna para los aparatos recientes y una versión ES5 para los navegadores embebidos antiguos. Mismas funciones, mismo producto; lo que cambia es la forma en que el código se compila y se sirve.

El parque real de la cartelería digital no es un parque reciente. Muchas pantallas instaladas hace cinco, ocho o diez años llevan un navegador congelado en su versión original, que nadie actualizará jamás. Chrome 44 y las versiones posteriores son compatibles. LG webOS 4 lleva un motor equivalente a Chromium 53, que no conoce CSS Grid: estos aparatos reciben diseños de repliegue escritos especialmente para ellos, para que la composición se mantenga en lugar de apilarse al azar.

Este trabajo tiene un coste, y lo asumimos: cada evolución de la interfaz debe verificarse en la base antigua antes de publicarse. A cambio, cambiar de software de cartelería no obliga a cambiar las pantallas, y el presupuesto de hardware queda fuera de la ecuación en el momento de decidir.

Lo que es compatible:

  • la Web, en cualquier aparato con navegador;
  • Android, con una aplicación dedicada, incluso en WebView antiguas;
  • LG webOS, generaciones antiguas incluidas;
  • ningún hardware propietario impuesto: la elección del proveedor de pantallas sigue siendo vuestra.

Lo que un departamento de TI querrá comprobar antes de firmar

El alojamiento lo proporciona OVH, en servidores situados en la Unión Europea. Ningún dato se aloja fuera de la UE, y el cumplimiento del RGPD está documentado.

En el lado de la red, la pantalla solo necesita un acceso saliente hacia la plataforma. El canal permanente es una conexión ordinaria iniciada por la propia pantalla: no hay ningún flujo entrante que autorizar hacia vuestros locales, ni ningún servidor que instalar en vuestra infraestructura.

Queda el compromiso, porque lo hay. Apuntar a navegadores antiguos impide usar las novedades de la Web en cuanto salen, y obliga a validar dos bases en lugar de una: el desarrollo es más lento, y algunos refinamientos de interfaz se descartan porque no funcionarían en todas partes. Preferimos una interfaz algo más sobria que se muestre en todas las pantallas a una interfaz vistosa que deje fuera a una parte de ellas. Un comprador de cartelería digital cambia de software mucho más a menudo de lo que cambia de hardware, y es esa relación la que protege la arquitectura.

Questions fréquentes

¿En cuánto tiempo llega un cambio a la pantalla?

En pocos segundos. La plataforma no hace que la pantalla consulte al servidor a intervalos fijos: mantiene un canal permanente hacia cada pantalla, mediante Server-Sent Events, y empuja el cambio en el momento en que se guarda. Por tanto, no hay ningún ciclo de refresco que esperar para un cambio de playlist o de programación.

¿Hay que sustituir las pantallas existentes para usar Smart-Signage?

No. El player se entrega en dos versiones surgidas del mismo código fuente: una versión moderna para los aparatos recientes y una versión ES5 para los navegadores embebidos antiguos. Chrome 44 y las versiones posteriores son compatibles, así como LG webOS 4, cuyo motor equivale a Chromium 53 y recibe diseños de repliegue a falta de CSS Grid. Una pantalla comprada hace ocho años sigue siendo utilizable.

¿Qué ocurre si la red falla o si una actualización falla?

En caso de corte de red, la pantalla sigue difundiendo los contenidos guardados en caché local por un Service Worker, y luego se resincroniza al volver la conexión. En caso de actualización defectuosa, un supervisor en JavaScript ES5 que se ejecuta antes que el código de la aplicación detecta tres arranques no sanos consecutivos y hace que la pantalla vuelva a la última versión sana conocida, con un límite de dos recargas automáticas por minuto.

¿Dónde se alojan los datos, y en qué sistemas funciona el player?

Los datos se alojan en OVH, en servidores situados en la Unión Europea; ningún dato se aloja fuera de la UE y el cumplimiento del RGPD está documentado. El player funciona en la Web, en Android con una aplicación dedicada y en LG webOS, sin ningún hardware propietario impuesto.

Pour aller plus loin