Sobes.tech
Junior — Middle

Pouvez-vous expliquer le principe de fonctionnement du protocole WebSocket et comment il assure une connexion permanente entre le serveur et le client?

sobes.tech IA

Réponse de l'IA

WebSocket est un protocole qui assure une connexion bidirectionnelle persistante entre le client et le serveur via TCP. Contrairement au HTTP classique, où le client initie les requêtes, WebSocket permet au serveur d’envoyer des données au client à tout moment.

Principe de fonctionnement :

  1. Le client initie une requête HTTP avec l’en-tête Upgrade: websocket pour passer au protocole WebSocket.
  2. Le serveur confirme la transition, et une connexion persistante est établie.
  3. Après l’établissement de la connexion, le client et le serveur peuvent échanger des messages en temps réel sans requêtes HTTP répétées.

Cela permet de créer des applications à faible latence, comme des chats, des jeux, des terminaux financiers.

Exemple d’utilisation de WebSocket en iOS (Swift) :

import Foundation

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

webSocketTask.resume()

// Envoyer un message
let message = URLSessionWebSocketTask.Message.string("Bonjour serveur!")
webSocketTask.send(message) { error in
    if let error = error {
        print("Erreur lors de l’envoi : \(error)")
    }
}

// Recevoir des messages
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("Erreur de réception : \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Message reçu : \(text)")
            default:
                break
            }
            receive() // continuer à écouter
        }
    }
}

receive()

Ainsi, WebSocket assure une connexion efficace et persistante pour l’échange de données en temps réel.