Sobes.tech
Junior — Middle

Können Sie das Funktionsprinzip des WebSocket-Protokolls erklären und wie es eine dauerhafte Verbindung zwischen Server und Client gewährleistet?

sobes.tech KI

Antwort von AI

WebSocket ist ein Protokoll, das eine dauerhafte bidirektionale Verbindung zwischen Client und Server über TCP bereitstellt. Im Gegensatz zum klassischen HTTP, bei dem der Client Anfragen initiiert, ermöglicht WebSocket dem Server, Daten jederzeit an den Client zu senden.

Funktionsprinzip:

  1. Der Client initiiert eine HTTP-Anfrage mit dem Header Upgrade: websocket, um auf das WebSocket-Protokoll umzuschalten.
  2. Der Server bestätigt den Übergang, und eine dauerhafte Verbindung wird hergestellt.
  3. Nach dem Verbindungsaufbau können der Client und der Server in Echtzeit Nachrichten austauschen, ohne wiederholte HTTP-Anfragen.

Dies ermöglicht die Erstellung von Anwendungen mit niedriger Latenz, z.B. Chats, Spiele, Finanzterminals.

Beispiel für die Verwendung von WebSocket in iOS (Swift):

import Foundation

let url = URL(string: "wss://example.com/socket")!
let webSocketTask = URLSession.shared.webSocketTask(with: url)

webSocketTask.resume()

// Nachricht senden
let message = URLSessionWebSocketTask.Message.string("Hallo Server!")
webSocketTask.send(message) { error in
    if let error = error {
        print("Sende Fehler: \(error)")
    }
}

// Nachrichten empfangen
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("Empfangsfehler: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Empfangene Nachricht: \(text)")
            default:
                break
            }
            receive() // weiter zuhören
        }
    }
}

receive()

Auf diese Weise bietet WebSocket eine effiziente und dauerhafte Verbindung für den Echtzeit-Datenaustausch.