SSE vs WebSocket: kies de juiste stream

SSE vs WebSocket

SSE vs WebSocket: welke realtime-optie gebruikt u | We.Inc

Server-sent events vs WebSockets: EventSource en WebSocket naast elkaar, herverbinden, binaire data, verbindingslimieten, een keuzehulp en minimale Node-servers voor beide.

Server-sent events streamen tekst van server naar browser via een gewone HTTP-response, en de EventSource API verbindt zelf opnieuw. Een WebSocket zet de verbinding om in een tweerichtingskanaal dat tekst of binaire data in beide richtingen vervoert. Gebruik SSE voor feeds, meldingen en voortgang; gebruik WebSockets als de browser vaak berichten terug moet sturen.

Naast elkaar

Weet u niet welke uw functie nodig heeft? Vink in de hulp hieronder de uitspraken aan die erop van toepassing zijn. Die past dezelfde regels toe als de tabel hierboven en zegt welke API past en waarom.

Veelgestelde vragen

Kan de browser met SSE data naar de server sturen?

Niet via de stream zelf. De event stream loopt alleen van server naar client, dus de browser stuurt zijn berichten met gewone fetch-requests. Voor chatachtig verkeer in beide richtingen past een WebSocket beter.

Hoe voorkom ik dat EventSource opnieuw verbindt?

Roep close() aan op de client. Vanaf de server zegt de HTML-standaard dat een response 204 No Content de client vertelt te stoppen met opnieuw verbinden.

Kan ik een Authorization-header meesturen met EventSource?

Nee. De constructor neemt alleen een URL en een options-object met als enige instelling withCredentials. Gebruik een cookie, een kortlevend token in de URL, of een lezer op basis van fetch als u eigen headers nodig hebt.

Is SSE achterhaald nu WebSockets bestaan?

Nee. Het formaat text/event-stream is nog steeds een goede keuze voor feeds in één richting, omdat het via normale HTTP-servers, proxy's en authenticatie loopt zonder protocolwissel.

Welke gebruikt minder serverbronnen?

Beide houden per client één langlevende verbinding open, dus het verschil is klein. Belangrijker is of uw host überhaupt langlevende responses of protocolupgrades toestaat, dus controleer eerst de limieten op de duur van requests.

Hoe server-sent events werken

Hoe WebSockets werken

Een snelle vuistregel

Server-sent events: minimale code

SSE-server in gewoon Node

Geen library nodig. De response blijft open; elke write is één event, en de commentregel voorkomt dat inactieve proxy's hem sluiten.

EventSource in de browser

addEventListener gebruikt de eventnaam uit de stream. Herverbinden gebeurt zonder enige code van uzelf.

WebSocket: minimale code

WebSocket-server met het pakket ws

Installeer met npm install ws. Dit stuurt elk bericht in hoofdletters terug naar de client die het stuurde.

WebSocket in de browser, met eenvoudig herverbinden

Anders dan bij EventSource verbindt niets vanzelf opnieuw, dus dit wacht even na close en opent een nieuwe socket.

De browser stuurt veel berichten terug, meerdere per seconde of meer

De data is binair, zoals audiofragmenten of buffers met gamestatus

Clients moeten gemiste events inhalen na een verbroken verbinding

Verkeer gaat via proxy's of hosting die alleen gewoon HTTP aankunnen

Server-sent events passen. Niets wat u aanvinkte heeft een tweerichtingskanaal nodig, en EventSource geeft u gratis herverbinden en hervatten.

Een WebSocket past. U hebt vaak berichten van de browser of binaire data nodig, en die kan een event stream niet vervoeren.

Welke past bij uw functie?

Vink aan wat voor uw functie geldt

Aanbeveling

Server-sent events

WebSocket

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap