Tehnologie

Timp real, funcționare offline, ecrane vechi: cum este construit

O modificare de playlist ajunge pe ecran în câteva secunde, difuzarea continuă chiar și atunci când rețeaua cade, iar un ecran cumpărat acum opt ani rămâne compatibil. Iată mecanismele care fac asta posibil, și ce costă ele.

Control în timp real — platforma și ecranul

Demonstrație

Încercați acum — Măriți, rotiți, aplicați un efect: ecranul urmează, iar platforma vă trimite înapoi ce afișează.

Ecran „Hol de primire”

Fișă ecran · Hol de primire Online
Văzut live
Zoom×1.00
Rotația conținutului
Efect
Animație

Fiecare reglaj ajunge pe ecran instantaneu — fără reimplementare, fără intervenție la fața locului.

Miniatura „Văzut live” este o captură reală a ecranului, trimisă înapoi de player, nu o previzualizare locală: vedeți exact ce se difuzează, chiar și la o mie de kilometri distanță. Scenă demonstrativă, video simulat.

Cast de ecran — de la telefon la ecranul din sală

Demonstrație

Încercați acum — Introduceți codul afișat pe ecran, alegeți ce partajați, difuzați: telefonul reproduce apoi ce vede sala.

Partajare ecran

Salle Confluence

Deschideți smart-signage.app/cast
apoi introduceți codul

K7F2

Ecran „Sală Confluence” — playlistă în curs

Castsmart-signage.app/cast

Cod afișat pe ecran

Partajați

Partajarea trece prin browser, prin WebRTC: nimic de instalat pe telefon sau pe calculator, și niciun cablu de conectat la ecran. Codul se schimbă la fiecare sesiune. Demonstrație — fluxul video este simulat.

Timpul real: a trimite, nu a interoga

Metoda obișnuită de actualizare a unui ecran constă în a-l face să interogheze serverul la intervale fixe: la fiecare cinci minute, la fiecare cincisprezece minute. Conținutul ajunge totuși, dar cu întârzierea ciclului în curs, iar fiecare ecran consumă rețea chiar și atunci când nimic nu s-a schimbat.

Smart-Signage funcționează invers. Platforma menține un canal permanent către fiecare ecran, prin Server-Sent Events, și trimite evenimentul chiar în momentul în care acesta se produce. Modificați o playlist sau o planificare: modificarea pleacă imediat, iar ecranul o aplică în câteva secunde. Nu există niciun ciclu de reîmprospătare de așteptat, și nimic nu circulă atât timp cât nimic nu se schimbă.

Această alegere angajează infrastructura. Trebuie menținute deschise simultan un număr mare de conexiuni, ceea ce nu este regimul de funcționare pentru care un server web este configurat implicit. Reverse-proxy-ul Caddy a fost ales tocmai pentru comportamentul său stabil pe aceste conexiuni de lungă durată.

Canalul funcționează în ambele sensuri, iar acest lucru face ca supravegherea să fie corectă:

  • fiecare ecran emite un semnal regulat de „bătaie a inimii”, care arată că este activ;
  • platforma afișează starea reală a parcului, ecran cu ecran: online, tăcut, și ce difuzează fiecare în acel moment;
  • un ecran care încetează să mai emită devine vizibil imediat, fără ca cineva să trebuiască să se deplaseze pentru a constata acest lucru.

Când rețeaua cade, și când actualizarea eșuează

Un ecran dependent de rețea este, potențial, un ecran negru. De aceea, conținuturile sunt puse în cache local de un Service Worker: dacă legătura dispare, difuzarea continuă cu ceea ce este deja disponibil pe loc, iar ecranul se resincronizează imediat ce rețeaua revine. Nimeni nu trebuie să intervină la fața locului.

O constrângere practică impune aici o precauție care merită menționată: WebView-urile Android limitează dimensiunea fișierelor pe care acceptă să le păstreze în cache. Un videoclip greu, încărcat dintr-o singură bucată, depășește această limită și nu ar fi niciodată pus în cache, deci niciodată disponibil offline. Din acest motiv, fișierele media mari sunt citite pe segmente succesive, nu dintr-o dată. Această divizare este cea care face ca modul offline să fie cu adevărat fiabil pe acest tip de echipament.

Al doilea risc nu este defecțiunea de rețea, ci actualizarea în sine. Un supervizor scris în JavaScript ES5 se execută înaintea codului aplicației și controlează Service Worker-ul. Dacă trei porniri consecutive nu sunt sănătoase, ecranul revine automat la ultima versiune sănătoasă cunoscută. O barieră de siguranță limitează, în plus, reîncărcările automate la două pe minut, pentru a exclude scenariul ecranului care clipește în buclă. Consecință concretă: o implementare eșuată nu blochează un parc deja instalat, acesta se repară singur.

Un parc existent nu este un parc de aruncat

Este punctul pe care îl cedăm cel mai puțin: software-ul se adaptează echipamentului existent, nu invers. Player-ul este livrat în două versiuni derivate din același cod sursă, o versiune modernă pentru dispozitivele recente și o versiune ES5 pentru browserele embedded vechi. Aceleași funcții, același produs; ceea ce se schimbă este modul în care codul este compilat și livrat.

Parcul real al afișajului dinamic nu este un parc recent. Multe ecrane instalate acum cinci, opt sau zece ani conțin un browser blocat la versiunea sa originală, pe care nimeni nu îl va actualiza vreodată. Chrome 44 și versiunile ulterioare sunt compatibile. LG webOS 4 conține un motor echivalent cu Chromium 53, care nu recunoaște CSS Grid: aceste dispozitive primesc machete de rezervă scrise special pentru ele, astfel încât compoziția să rămână stabilă în loc să se suprapună la întâmplare.

Această muncă are un cost, iar noi ni-l asumăm: fiecare evoluție a interfeței trebuie verificată pe baza veche înainte de a fi lansată. În schimb, schimbarea software-ului de difuzare nu obligă la schimbarea ecranelor, iar bugetul pentru echipamente iese din ecuație în momentul deciziei.

Ce este compatibil:

  • Web-ul, pe orice dispozitiv dotat cu un browser;
  • Android, cu o aplicație dedicată, inclusiv pe WebView-uri vechi;
  • LG webOS, inclusiv generațiile vechi;
  • niciun echipament proprietar impus: alegerea furnizorului de ecrane rămâne a dumneavoastră.

Ce va dori un departament IT să verifice înainte de a semna

Găzduirea este asigurată la OVH, pe servere situate în Uniunea Europeană. Niciun fel de date nu sunt găzduite în afara UE, iar conformitatea cu GDPR este documentată.

În ceea ce privește rețeaua, ecranul are nevoie doar de un acces de ieșire către platformă. Canalul permanent este o conexiune obișnuită inițiată chiar de ecran: nu există niciun flux de intrare care trebuie autorizat către sediile dumneavoastră, nici vreun server de instalat pe infrastructura dumneavoastră.

Rămâne compromisul, pentru că există unul. Vizarea browserelor vechi interzice folosirea noutăților Web-ului imediat ce apar și obligă la validarea a două baze în loc de una: dezvoltarea este mai lentă, iar unele rafinamente de interfață sunt eliminate pentru că nu ar funcționa peste tot. Preferăm o interfață puțin mai sobră care se afișează pe toate ecranele, unei interfețe strălucitoare care lasă o parte dintre ele pe dinafară. Un cumpărător de afișaj dinamic schimbă software-ul mult mai des decât schimbă echipamentele, și tocmai această relație o protejează arhitectura.

Questions fréquentes

În cât timp ajunge o modificare pe ecran?

În câteva secunde. Platforma nu face ca ecranul să interogheze serverul la intervale fixe: ea menține un canal permanent către fiecare ecran, prin Server-Sent Events, și trimite modificarea chiar în momentul în care este înregistrată. Nu există așadar niciun ciclu de reîmprospătare de așteptat pentru o schimbare de playlist sau de planificare.

Trebuie înlocuite ecranele existente pentru a folosi Smart-Signage?

Nu. Player-ul este livrat în două versiuni derivate din același cod sursă: o versiune modernă pentru dispozitivele recente și o versiune ES5 pentru browserele embedded vechi. Chrome 44 și versiunile ulterioare sunt compatibile, la fel ca LG webOS 4, al cărui motor echivalează cu Chromium 53 și primește machete de rezervă în absența CSS Grid. Un ecran cumpărat acum opt ani rămâne utilizabil.

Ce se întâmplă dacă rețeaua cade sau dacă o actualizare eșuează?

În caz de întrerupere a rețelei, ecranul continuă să difuzeze conținuturile puse în cache local de un Service Worker, apoi se resincronizează la revenirea conexiunii. În caz de actualizare defectuoasă, un supervizor în JavaScript ES5, executat înaintea codului aplicației, detectează trei porniri nesănătoase consecutive și readuce ecranul la ultima versiune sănătoasă cunoscută, cu o limită de două reîncărcări automate pe minut.

Unde sunt găzduite datele, și pe ce sisteme funcționează player-ul?

Datele sunt găzduite la OVH, pe servere situate în Uniunea Europeană; niciun fel de date nu sunt găzduite în afara UE, iar conformitatea cu GDPR este documentată. Player-ul funcționează pe Web, pe Android cu o aplicație dedicată și pe LG webOS, fără niciun echipament proprietar impus.

Pour aller plus loin