Hoppa till innehållet

Server-Sent Events

Server-Sent Events skickar textmeddelanden från server till klient via HTTP, exempelvis om ett bakgrundsjobbs förlopp.

Även känt somSSE
API:er och datakontrakt

Server-Sent Events, eller SSE, skickar textmeddelanden från server till klient över en HTTP-anslutning. I webbläsaren tillhandahåller EventSource gränssnittet; händelseströmmen använder text/event-stream. Anslutningen är enkelriktad. Kommandon från klient till server behöver en annan väg, exempelvis vanliga HTTP-anrop.

Ett meddelande om ett pågående rapportjobb

En fiktiv portal tar emot detta händelseblock:

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

Den tomma raden avslutar blocket. Händelse-ID, händelsetyp och data har olika roller. Här meddelar servern att skapandet pågår; meddelandet betyder inte att filen är klar. Fältvärdena är vårt eget exempel.

Vid ett tillfälligt anslutningsavbrott kan EventSource ansluta igen automatiskt. Ett tidigare angivet, icke-tomt händelse-ID rapporteras via Last-Event-ID. Servern måste själv avgöra om och hur saknade meddelanden erbjuds igen. ID:t skapar ingen lagrad händelsehistorik.

Applikationen måste därför hantera dubbla meddelanden och historik som inte längre är tillgänglig, exempelvis genom att hämta jobbets aktuella tillstånd igen. SSE garanterar inte att en verksamhetsåtgärd genomförs exakt en gång. Åtkomst till projekt och jobb måste också kontrolleras vid anslutning och när meddelanden levereras.

Källor

Artiklar om ämnet

Ditt projekt med ASES

Beskriv ditt projekt för oss. Vi hör av oss med en första bedömning.