Junior — Middle
შეგიძლიათ ახსნათ WebSocket-ის პროტოკოლის ფუნქციონირების პრინციპი და როგორ უზრუნველყოფს ის მუდმივ კავშირს სერვერისა და კლიენტის შორის?
sobes.tech AI
პასუხი AI-სგან
WebSocket — ეს არის პროტოკოლი, რომელიც უზრუნველყოფს მუდმივ ორ მიმართულებიან კავშირს მომხმარებლისა და სერვერის შორის TCP-ის ზედა. განსხვავებით კლასიკური HTTP-ისგან, სადაც მომხმარებელი ინიციირებს მოთხოვნებს, WebSocket საშუალებას აძლევს სერვერს ნებისმიერ დროს გამოგიგზავნოს მონაცემები მომხმარებელზე.
სამუშაო პრინციპი:
- მომხმარებელი იწყებს HTTP მოთხოვნას სათაურით
Upgrade: websocket, რათა გადავიდეს WebSocket პროტოკოლზე. - სერვერი ადასტურებს გადართვას და დამყარდება მუდმივი კავშირი.
- კავშირის დამყარების შემდეგ, მომხმარებელი და სერვერი რეალურ დროში გაცვლიან შეტყობინებებს, გარეშე საჭიროების განმეორებითი 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 უზრუნველყოფს ეფექტიან და მუდმივ კავშირს რეალურ დროში მონაცემების გაცვლისთვის.