0Pricing
Go Academy · Lektion

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: websocket
  • Connection: 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 Klartext
  • wss:// ü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

  1. WebSocket-Grundlagen
  2. gorilla/websocket verwenden
  3. Nachrichten verteilen
  4. Verbindungsverwaltung
← Zurück zu Go Academy