WebSocket og realtidskommunikation
It A · STX · A-niveau · Netværk og protokoller
💻 WebSocket og realtidskommunikation
WebSocket = protokol til to-vejs realtidskommunikation mellem browser og server. Tilladt af W3C 2011 (RFC 6455).
Forskel fra HTTP: HTTP er request-response (klient spørger, server svarer, forbindelse lukkes). WebSocket holder forbindelse ÅBEN — server kan PUSHE data til klient når som helst.
Use cases: chat-applikationer (Slack, Discord), realtids-dashboards (aktier, sport), multiplayer-spil, kollaborativ editing (Google Docs, Figma), live-notifikationer.
Sammenligning med polling: lang-polling (klient spørger gentagne gange) — ineffektivt. Server-Sent Events (SSE) — kun server-til-klient. WebSocket — to-vejs.
WebSocket-handshake: starter som HTTP-request med "Upgrade: websocket" header. Server svarer 101 Switching Protocols. Derefter binær protokol.
WebSocket-API i JavaScript: ``js const ws = new WebSocket('wss://example.com/socket'); ws.onopen = () => console.log('connected'); ws.onmessage = (e) => console.log(e.data); ws.send('hello server!');``
WSS vs. WS: WSS = krypteret (over TLS, port 443). WS = ukrypteret (port 80).
Server-side libraries: Socket.io (Node.js, mest populær), ws (Node.js), Tornado (Python), gorilla/websocket (Go), Spring WebSocket (Java).
Socket.io udvider WebSocket: rooms (gruppér klienter), automatisk reconnect, fallback til lang-polling.
Skalering: WebSocket er stateful — udfordring at skalere horisontalt. Redis pub/sub kan distribuere meddelelser mellem servere.
WebRTC: peer-to-peer alternativ for video/a
Læringsmål
- Redegøre for forskellen mellem HTTP og WebSocket
- Give eksempler på anvendelser der kræver realtidskommunikation
- Beskrive hvordan en WebSocket-forbindelse etableres
Sådan kan du arbejde med emnet
- Forklar, hvad der er forskellen på HTTP polling og WebSocket-forbindelser
- Beskriv et scenarie, hvor WebSockets er det rigtige valg frem for REST
- Implementér en simpel WebSocket-chat i Python eller JavaScript og beskriv, hvad der sker bag kulisserne
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis