Aggiornamenti in Tempo Reale
Aggiornamenti in tempo reale nella dashboard senza ricaricare.
A cosa serve
- Vedere alert appena entrano, senza ricaricare.
- Aggiornare dashboard operative in tempo reale.
- Coordinare più utenti sulla stessa vista live.
Cos'e
Rela AI include un sistema di aggiornamenti in tempo reale basato su Ably, un servizio di messaggistica WebSocket con modello pub/sub. Questo permette alla dashboard di riflettere le modifiche istantaneamente senza che l'utente debba ricaricare la pagina.
Il sistema funziona in modo trasparente: non richiede alcuna configurazione da parte dell'utente o dell'amministratore del tenant.
Come funziona
L'architettura segue un pattern publish/subscribe:
- Il backend pubblica eventi — Quando si verifica un cambiamento rilevante (nuovo allarme, aggiornamento di un task, messaggio in arrivo, ecc.), il server pubblica un evento su un canale Ably associato al tenant.
- La dashboard si iscrive automaticamente — Al momento del login, la dashboard stabilisce una connessione WebSocket con Ably e si iscrive ai canali corrispondenti al tenant dell'utente autenticato.
- La UI si aggiorna istantaneamente — Quando arriva un evento, la dashboard aggiorna la vista corrispondente senza intervento dell'utente.
Backend (FastAPI) --pubblica--> Ably (WebSocket) --consegna--> Dashboard (Next.js)Cosa si aggiorna in tempo reale
| Sezione | Evento | Descrizione |
|---|---|---|
| Allarmi macchine | Nuovo allarme / cambio di stato | Gli allarmi appaiono nello stream live man mano che l'agente li elabora |
| Task (Kanban) | Creazione / cambio di stato / assegnazione | La board Kanban riflette i movimenti delle card istantaneamente |
| Conversazioni WhatsApp | Messaggio in arrivo / in uscita | I messaggi appaiono nella casella senza ricaricare |
| Conversazioni Email | Email in arrivo / risposta dell'agente | Le email vengono visualizzate man mano che arrivano |
| Stato connessione WhatsApp | Connesso / disconnesso / codice QR | L'indicatore di stato e il codice QR si aggiornano in tempo reale |
| Stato connessione MQTT | Connesso / disconnesso | Riflette lo stato attuale della connessione MQTT del tenant |
| Stato connessione OPC UA | Connesso / disconnesso | Riflette lo stato attuale della connessione OPC UA del tenant |
Canali per tenant
Ogni tenant ha canali dedicati in Ably, garantendo un isolamento completo tra le organizzazioni. Un utente riceve solo gli eventi del proprio tenant.
I canali sono autenticati tramite token generati dal backend, collegati alla sessione dell'utente. Non e possibile iscriversi ai canali di un altro tenant.
Meccanismo di fallback
Se la connessione WebSocket viene interrotta (ad esempio, per instabilita della rete), la dashboard attiva automaticamente un meccanismo di polling come riserva:
- La dashboard rileva la disconnessione da Ably
- Passa a interrogazioni periodiche al backend (polling) per mantenere i dati aggiornati
- Quando la connessione WebSocket viene ripristinata, il polling viene disattivato e la sottoscrizione in tempo reale riprende
Questo comportamento e completamente automatico e trasparente per l'utente.
Requisiti
| Requisito | Dettaglio |
|---|---|
| Configurazione utente | Nessuna. Funziona automaticamente per tutti gli utenti autenticati |
| Browser supportati | Tutti i browser moderni con supporto WebSocket |
| Connessione di rete | Richiesta connessione a internet. In caso di disconnessione temporanea, il fallback a polling garantisce la continuita |
Costo
Il servizio in tempo reale e incluso nella piattaforma. Non genera costi aggiuntivi per evento o per connessione per il tenant.
Benefici chiave
- Aggiornamenti push senza polling — minor carico server.
- Scope per tenant applicato lato server.
- Riconnessione automatica in caso di caduta.
- Compatibile con proxy e firewall aziendali.
- Zero setup per l'utente finale.