FAGPORTALEN

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

Sådan kan du arbejde med emnet

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

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.