WebSocket-Grundlagen
Echtzeitkommunikation in beide Richtungen
WebSocket-Grundlagen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Echtzeitkommunikation in beide Richtungen
HTTP funktioniert nach dem Anfrage-Antwort-Prinzip: Der Client fragt an, der Server antwortet und die Verbindung endet (logisch). Für Chats, Live-Dashboards und Spiele benötigen Sie einen dauerhaften, bidirektionalen Kanal. Genau das bieten WebSockets.
Der Upgrade-Handshake
Eine WebSocket-Verbindung beginnt als normale HTTP-Anfrage mit speziellen Headern:
Upgrade: websocketConnection: Upgrade
Der Server antwortet mit 101 Switching Protocols, und der TCP-Socket wird für Vollduplex-Frames wiederverwendet.
Warum nicht einfach Polling
Vor WebSockets verwendeten Anwendungen Polling (wiederholte Anfragen) oder Long-Polling. Beides verschwendet Bandbreite und erhöht die Latenz. WebSockets halten eine Verbindung offen, sodass beide Seiten sofort senden können.
Frames statt Anfragen
Nach dem Upgrade werden Daten als leichte Frames und nicht als HTTP-Nachrichten übertragen. Frames können Text oder Binärdaten enthalten. Außerdem gibt es Steuerungsframes für Ping/Pong und zum Schließen.
Vollduplex
Anders als bei HTTP können beide Kommunikationspartner jederzeit senden, ohne auf eine Antwort zu warten. Ein Server kann eine Benachrichtigung sofort senden, sobald sich etwas ändert, während der Client gleichzeitig Eingaben überträgt.
ws und wss
Wie bei http/https gibt es für WebSockets zwei Schemata:
ws://im Klartextwss://über TLS (verwenden Sie dies in der Produktion)
Unterstützung durch die Standardbibliothek
Go verfügt in net/http allein über keine WebSocket-Implementierung in der Standardbibliothek. In der Community werden github.com/gorilla/websocket oder nhooyr.io/websocket verwendet. Die nächste Lektion behandelt gorilla.
import "github.com/gorilla/websocket"Ein mentales Modell
Stellen Sie sich einen WebSocket wie ein Telefongespräch vor:
- Wählen = der HTTP-Upgrade-Handshake
- Die offene Leitung = die dauerhafte Verbindung
- In beide Richtungen sprechen = Vollduplex-Frames
- Auflegen = der Close-Frame
Nachrichtentypen
Zwei Datentypen von Frames sind besonders wichtig:
- Text-Frames enthalten UTF-8 (häufig JSON)
- Binär-Frames enthalten rohe Bytes (Protobuf, Bilder)
Steuerframes (Ping, Pong, Close) verwalten die Verbindung selbst.
Wo WebSockets ihre Stärken ausspielen
Besonders geeignet für:
- Chat und Anwesenheitsstatus
- Live-Börsenkurse oder Sportergebnisse
- Kollaboratives Bearbeiten
- Spielzustände in Mehrspieler-Spielen
Für die Kommunikation ausschließlich in eine Richtung vom Server zum Client können Server-Sent Events einfacher sein.
Ausführbar: Das Prinzip der Frames
WebSocket-Code benötigt eine externe Bibliothek. Daher folgt hier eine Analogie mit der Standardbibliothek: eine Funktion, die eine Nachricht als Text oder binär klassifiziert und so die verschiedenen Frame-Typen veranschaulicht.
package main
import (
"fmt"
"unicode/utf8"
)
func frameType(data []byte) string {
if utf8.Valid(data) {
return "text"
}
return "binary"
}
func main() {
fmt.Println(frameType([]byte("hello")))
fmt.Println(frameType([]byte{0xff, 0x00, 0x01}))
}Kurztest
Testen Sie Ihr Verständnis der WebSocket-Grundlagen.
Zusammenfassung
Sie haben die Grundlagen von WebSockets gelernt:
- Sie ermöglichen dauerhafte Vollduplex-Kommunikation
- Sie beginnen mit einem HTTP-Upgrade-Handshake (Antwort 101)
- Daten fließen als Text- oder Binärframes; Steuerframes verwalten die Verbindung
- Verwenden Sie in der Produktion
wss://; Go verwendet Bibliotheken wie gorilla/websocket
Häufig gestellte Fragen
Ist die Lektion „WebSocket-Grundlagen“ kostenlos?
Ja — der vollständige Text von „WebSocket-Grundlagen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „WebSocket-Grundlagen“?
Echtzeitkommunikation in beide Richtungen Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Go Academy zu starten?
Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „WebSocket-Grundlagen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?
Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- WebSocket-Grundlagen
- gorilla/websocket verwenden
- Nachrichten verteilen
- Verbindungsverwaltung