Vai al contenuto

Server-Sent Events

SSE trasmette notifiche testuali dal server al client via HTTP, per esempio sull’avanzamento di un lavoro in background.

Noto anche comeSSE
API e contratti dati

Il meccanismo Server-Sent Events, o SSE, trasmette notifiche testuali dal server al client su una connessione HTTP. Nel browser, EventSource fornisce l’interfaccia; il flusso usa text/event-stream. La connessione è unidirezionale. I comandi dal client al server richiedono un percorso separato, come normali richieste HTTP.

Una notifica sul report in elaborazione

Un portale fittizio riceve questo blocco di evento:

id: evt-12
event: job-status
data: {"jobId":"J-52","status":"running"}

La riga vuota termina il blocco. Identificativo, tipo di evento e dati hanno ruoli diversi. Qui il server segnala una creazione in corso; la notifica non significa che il file sia pronto. I valori dei campi sono un nostro esempio.

Dopo un’interruzione recuperabile, EventSource può riconnettersi automaticamente. Un identificativo di evento già impostato e non vuoto viene comunicato tramite Last-Event-ID. Il server deve decidere se e come rendere nuovamente disponibili le notifiche mancanti. L’identificativo non crea una cronologia di eventi memorizzata.

L’applicazione deve quindi gestire notifiche duplicate e una cronologia non più disponibile, per esempio rileggendo lo stato attuale del lavoro. SSE non garantisce che un’operazione applicativa venga eseguita esattamente una volta. L’accesso al progetto e al lavoro va controllato anche durante la connessione e l’invio delle notifiche.

Fonti

Articoli sul tema

Il vostro progetto con ASES

Descriveteci il vostro progetto. Vi ricontatteremo con una prima valutazione.