Zum Hauptinhalt springen

6. Sending and Receiving Data (Senden und Empfangen von Daten)

6.1 Sending Data (Senden von Daten)

Um Daten über eine WebSocket-Verbindung zu senden, MUSS ein Endpoint die Daten in einem WebSocket-Frame kapseln.

Sendeschritte

  1. Zu sendende Daten vorbereiten
  2. Frame-Typ bestimmen (Text oder Binary)
  3. Wenn Client, Maskierungsschlüssel generieren und Daten maskieren
  4. WebSocket-Frame konstruieren
  5. Über die zugrunde liegende TCP-Verbindung senden

Browser-API-Beispiel

const ws = new WebSocket('wss://example.com/socket');

// Textdaten senden
ws.send('Hello, Server!');

// Binärdaten senden
const buffer = new ArrayBuffer(8);
ws.send(buffer);

// Blob senden
const blob = new Blob(['Hello'], { type: 'text/plain' });
ws.send(blob);

6.2 Receiving Data (Empfangen von Daten)

Wenn ein Endpoint Daten empfängt, MUSS er sie gemäß folgenden Schritten verarbeiten:

  1. Frame-Header lesen
  2. Frame-Format validieren
  3. Falls maskiert, Daten entmaskieren
  4. Frame gemäß Opcode verarbeiten
  5. Bei fragmentierter Nachricht Nachricht reassemblieren
  6. Vollständige Nachricht an Anwendungsschicht ausliefern

Browser-API-Beispiel

ws.onmessage = (event) => {
if (typeof event.data === 'string') {
console.log('Text empfangen:', event.data);
} else if (event.data instanceof ArrayBuffer) {
console.log('Binär empfangen:', event.data);
}
};