Paquets del SDK
Tots els paquets es publiquen sota l'àmbit @xiboplayer a npm.
Nucli
@xiboplayer/core
Orquestració independent de plataforma — el cervell central que connecta tot.
- Gestió del cicle de col·lecció (RegisterDisplay, RequiredFiles, Schedule, etc.)
- Cau offline amb fallback a IndexedDB
- Optimització de salt CRC32
- Gestió de connectors de dades
- Execució de comandes
@xiboplayer/renderer
Renderitzador de dissenys XLF — analitza el XML de dissenys Xibo i el renderitza al DOM.
- Reutilització d'elements (pre-crear tots els widgets, alternar visibilitat)
- Tipus de widget: vídeo, imatge, àudio, PDF, text, rellotge, ticker, pàgina web, HLS, incrustat
- Transicions: esvaïment, vol (8 direccions de brúixola) via Web Animations API
- Servidor de Control Interactiu (pont postMessage)
- Accions tàctils/teclat
- Renderitzat de capes superposades amb z-index basat en prioritat
Comunicació
@xiboplayer/xmds
Comunicació amb el CMS — transport dual amb superfície d'API idèntica.
- XmdsClient: transport SOAP/XML (totes les versions del CMS)
- RestClient: transport REST/JSON (càrregues 30% més petites, cau ETag 304)
- Els 10 mètodes XMDS v5 + GetWeather + BlackList
- Detecció de canvis CRC32
@xiboplayer/xmr
Missatgeria push en temps real — encapsula la biblioteca oficial de WebSocket de Xibo.
- 14 gestors de comandes (collectNow, screenshot, changeLayout, overlayLayout, revertToSchedule, purgeAll, etc.)
- Reconnexió amb reculada exponencial (10 intents)
- Comprovació de TTL/expiració
- Rotació de claus RSA via Web Crypto API
Dades
@xiboplayer/cache
Gestió de fitxers i mitjans — descàrregues paral·leles amb verificació d'integritat.
- Descàrregues paral·leles de 4 blocs amb dimensionament dinàmic
- Validació MD5 (spark-md5)
- Reescriptura d'URLs de CSS de fonts
- Detecció de cau corrupte i neteja automàtica
- Barreres de cua per a resiliència offline
@xiboplayer/schedule
Gestió de programació — analitza el XML de programació del CMS en una línia de temps de reproducció.
- Franges horàries (recurrència diària, setmanal, mensual)
- Programació de campanyes amb reproducció cíclica
- Intercalació d'interrupcions/quota de veu
- maxPlaysPerHour amb distribució uniforme
- Programació de capes superposades amb prioritat
- Geotanques i criteris meteorològics
@xiboplayer/stats
Estadístiques i registre — seguiment de prova de reproducció amb enviament al CMS.
- Seguiment de durada per disseny i per widget
- Estadístiques d'events (tàctil, webhook) amb etiquetes
- Divisió per límit d'hora per a l'agregació correcta del CMS
- Agrupament de registres (limitat a 50 per especificació del CMS)
- Informe d'errors amb període de deduplicació de 5 minuts
- Persistència a IndexedDB amb poda automàtica
Configuració
@xiboplayer/settings
Configuració de pantalla — analitza i gestiona la configuració enviada pel CMS.
- EventEmitter per a actualitzacions reactives
- Aplicació de finestra de descàrrega
- Configuració d'interval de captures de pantalla
- Nivell de registre des del CMS
- Anàlisi de configuració d'etiquetes del CMS
@xiboplayer/utils
Utilitats compartides — la base utilitzada per tots els paquets.
- Logger (basat en nivells amb destinació CMS)
- Classe base EventEmitter
- fetchWithRetry (reintent configurable amb reculada, HTTP 429 Retry-After)
- Config (generació de clau de maquinari, adreça del CMS, localStorage)
- Client de l'API del CMS (77 mètodes per a l'API de gestió del CMS v4)
Plataforma
@xiboplayer/sw
Utilitats del Service Worker — servei de mitjans i estratègies de cau.
- Streaming progressiu per blocs amb peticions Range
- Resolució de mitjans basada en XLF
- Barreres de descàrrega ordenades per disseny
- Reescriptura d'URLs de CSS de fonts
- Cau primer amb fallback a xarxa
@xiboplayer/crypto
Criptografia — gestió de parells de claus RSA.
- Generació de claus RSA-1024 via Web Crypto API
- Exportació de clau pública per al registre al CMS
- Suport de rotació de claus (comanda XMR rekey)
@xiboplayer/sync
Sincronització multipantalla — suport per a video walls entre pestanyes i dispositius.
- Model líder/seguidor amb transports intercanviables
- BroadcastChannel per a sincronització a la mateixa màquina (entre pestanyes)
- Transport WebSocket per a sincronització entre dispositius a la LAN (video walls)
- Aïllament de grups — múltiples video walls comparteixen un relay sense interferències
- Transicions de disseny i inici de vídeo sincronitzats
- Delegació d'estadístiques/registres a través del líder
- Reconnexió automàtica amb reculada exponencial i re-unió automàtica al grup
@xiboplayer/proxy
Proxy CORS — suport per a desenvolupament, Electron/Chromium i relay de sincronització.
- Servidor proxy basat en Express
- Gestió de capçaleres CORS
- Relay WebSocket de sincronització per a video walls entre dispositius amb aïllament de grups
- CLI de relay independent (
xiboplayer-relay --port=9590) per a desplegaments dedicats - Utilitzat pels wrappers d'Electron i Chromium
