Gå til innholdet

Server-Sent Events

Server-Sent Events sender tekstmeldinger fra server til klient via HTTP, for eksempel om fremdriften til en bakgrunnsjobb.

Også kjent somSSE
API-er og datakontrakter

Server-Sent Events, eller SSE, sender tekstmeldinger fra server til klient over en HTTP-forbindelse. I nettleseren tilbyr EventSource grensesnittet; hendelsesstrømmen bruker text/event-stream. Forbindelsen er enveis. Kommandoer fra klient til server trenger en annen vei, for eksempel vanlige HTTP-forespørsler.

En melding om en pågående rapportjobb

En fiktiv portal mottar denne hendelsesblokken:

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

Den tomme linjen avslutter blokken. Hendelses-ID, hendelsestype og data har ulike roller. Her melder serveren at opprettelsen pågår; meldingen betyr ikke at filen er klar. Feltverdiene er vårt eget eksempel.

Ved et midlertidig forbindelsesbrudd kan EventSource koble til igjen automatisk. En tidligere angitt, ikke-tom hendelses-ID rapporteres via Last-Event-ID. Serveren må selv avgjøre om og hvordan manglende meldinger tilbys på nytt. ID-en oppretter ingen lagret hendelseshistorikk.

Applikasjonen må derfor håndtere doble meldinger og historikk som ikke lenger er tilgjengelig, for eksempel ved å hente jobbens gjeldende tilstand på nytt. SSE garanterer ikke at en handling i applikasjonen utføres nøyaktig én gang. Tilgang til prosjekt og jobb må også kontrolleres ved tilkobling og levering av meldinger.

Kilder

Artikler om temaet

Ditt prosjekt med ASES

Beskriv prosjektet ditt for oss. Vi tar kontakt med en første vurdering.