Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot WebSocket protokola darbības principu un kā tas nodrošina pastāvīgu savienojumu starp serveri un klientu?

sobes.tech AI

Atbilde no AI

WebSocket ir protokols, kas nodrošina pastāvīgu divvirzienu savienojumu starp klientu un serveri pār TCP. Atšķirībā no tradicionālā HTTP, kur klients iniciē pieprasījumus, WebSocket ļauj serverim sūtīt datus klientam jebkurā laikā.

Darba princips:

  1. Klients iniciē HTTP pieprasījumu ar galveni Upgrade: websocket, lai pārietu uz WebSocket protokolu.
  2. Servers apstiprina pāreju, un tiek izveidots pastāvīgs savienojums.
  3. Pēc savienojuma izveides klients un serveris var apmainīties ar ziņojumiem reāllaikā bez nepieciešamības atkārtoti veikt HTTP pieprasījumus.

Tas ļauj izveidot zema aizkaves lietojumprogrammas, piemēram, čatus, spēles, finanšu termināļus.

WebSocket piemērs iOS (Swift):

import Foundation

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

webSocketTask.resume()

// Ziņojuma sūtīšana
let message = URLSessionWebSocketTask.Message.string("Sveiki, server!")
webSocketTask.send(message) { error in
    if let error = error {
        print("Sūtīšanas kļūda: \(error)")
    }
}

// Ziņojumu saņemšana
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("Saņemšanas kļūda: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Saņemta ziņa: \(text)")
            default:
                break
            }
            receive() // turpinām klausīties
        }
    }
}

receive()

Tādējādi WebSocket nodrošina efektīvu pastāvīgu savienojumu datu apmaiņai reāllaikā.