Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ WebSocket-ის პროტოკოლის ფუნქციონირების პრინციპი და როგორ უზრუნველყოფს ის მუდმივ კავშირს სერვერისა და კლიენტის შორის?

sobes.tech AI

პასუხი AI-სგან

WebSocket — ეს არის პროტოკოლი, რომელიც უზრუნველყოფს მუდმივ ორ მიმართულებიან კავშირს მომხმარებლისა და სერვერის შორის TCP-ის ზედა. განსხვავებით კლასიკური HTTP-ისგან, სადაც მომხმარებელი ინიციირებს მოთხოვნებს, WebSocket საშუალებას აძლევს სერვერს ნებისმიერ დროს გამოგიგზავნოს მონაცემები მომხმარებელზე.

სამუშაო პრინციპი:

  1. მომხმარებელი იწყებს HTTP მოთხოვნას სათაურით Upgrade: websocket, რათა გადავიდეს WebSocket პროტოკოლზე.
  2. სერვერი ადასტურებს გადართვას და დამყარდება მუდმივი კავშირი.
  3. კავშირის დამყარების შემდეგ, მომხმარებელი და სერვერი რეალურ დროში გაცვლიან შეტყობინებებს, გარეშე საჭიროების განმეორებითი HTTP მოთხოვნების.

ეს საშუალებას აძლევს შექმნათ დაბალი ლატენციის აპლიკაციები, როგორიცაა ჩატები, თამაშები, ფინანსური ტერმინალები.

WebSocket-ის გამოყენების მაგალითი iOS-ში (Swift):

import Foundation

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

webSocketTask.resume()

// შეტყობინების გაგზავნა
let message = URLSessionWebSocketTask.Message.string("გამარჯობა სერვერზე!")
webSocketTask.send(message) { error in
    if let error = error {
        print("გაგზავნის შეცდომა: \(error)")
    }
}

// შეტყობინებების მიღება
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("მიღების შეცდომა: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("მიღებული შეტყობინება: \(text)")
            default:
                break
            }
            receive() // მოსმენის გაგრძელება
        }
    }
}

receive()

ამ გზით, WebSocket უზრუნველყოფს ეფექტიან და მუდმივ კავშირს რეალურ დროში მონაცემების გაცვლისთვის.