Gå til indholdet

Server-Sent Events

Server-Sent Events sender tekstmeddelelser fra server til klient via HTTP, eksempelvis om en baggrundsopgaves fremdrift.

Også kendt somSSE
API'er og datakontrakter

Server-Sent Events, eller SSE, sender tekstmeddelelser fra server til klient over en HTTP-forbindelse. I browseren stiller EventSource grænsefladen til rådighed; hændelsesstrømmen bruger text/event-stream. Forbindelsen er ensrettet. Kommandoer fra klient til server kræver en anden vej, eksempelvis almindelige HTTP-forespørgsler.

En meddelelse om en igangværende rapportopgave

En fiktiv portal modtager denne hændelsesblok:

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

Den tomme linje afslutter blokken. Hændelses-ID, hændelsestype og data har forskellige roller. Her melder serveren om igangværende oprettelse; meddelelsen betyder ikke, at filen er klar. Feltværdierne er vores eget eksempel.

Efter en midlertidig forbindelsesafbrydelse kan EventSource automatisk forbinde igen. Et tidligere angivet, ikke-tomt hændelses-ID sendes via Last-Event-ID. Serveren skal selv afgøre, om og hvordan manglende meddelelser stilles til rådighed igen. ID'et skaber ikke en gemt hændelseshistorik.

Applikationen skal derfor håndtere dobbeltmeddelelser og historik, der ikke længere er tilgængelig, eksempelvis ved at hente opgavens aktuelle tilstand igen. SSE garanterer ikke, at en handling i applikationen udføres præcis én gang. Adgang til projekt og opgave skal også kontrolleres ved forbindelse og levering af meddelelser.

Kilder

Artikler om emnet

Dit projekt med ASES

Beskriv dit projekt for os. Vi vender tilbage med en første vurdering.