Sobes.tech
Junior — Middle

WebSocket protokolining ishlash prinsipi va u qanday qilib server va mijoz o'rtasida doimiy ulanishni ta'minlaydi, tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

WebSocket — bu TCP ustida mijoz va server o'rtasida doimiy ikki tomonlama ulanishni ta'minlaydigan protokoldir. An'anaviy HTTP dan farqli o'laroq, bu yerda mijoz so'rovlarni boshlaydi, WebSocket esa serverga istalgan vaqtda ma'lumot yuborishga imkon beradi.

Ishlash prinsipi:

  1. Mijoz Upgrade: websocket sarlavhasi bilan HTTP so'rovini boshlaydi va WebSocket protokoliga o'tadi.
  2. Server o'tishni tasdiqlaydi va doimiy ulanish o'rnatiladi.
  3. Ulanish o'rnatilgandan so'ng, mijoz va server real vaqtda xabarlar almashishi mumkin, takroriy HTTP so'rovlarisiz.

Bu, masalan, chatlar, o'yinlar, moliyaviy terminallar kabi kechikishi past bo'lgan ilovalarni yaratishga imkon beradi.

iOSda WebSocketdan foydalanish misoli (Swift):

import Foundation

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

webSocketTask.resume()

// Xabar yuborish
let message = URLSessionWebSocketTask.Message.string("Salom server!")
webSocketTask.send(message) { error in
    if let error = error {
        print("Yuborish xatosi: \(error)")
    }
}

// Xabarlarni qabul qilish
func receive() {
    webSocketTask.receive { result in
        switch result {
        case .failure(let error):
            print("Qabul qilish xatosi: \(error)")
        case .success(let message):
            switch message {
            case .string(let text):
                print("Qabul qilingan xabar: \(text)")
            default:
                break
            }
            receive() // tinglashni davom ettirish
        }
    }
}

receive()

Shu tarzda, WebSocket real vaqtda ma'lumot almashinuvi uchun samarali va doimiy ulanishni ta'minlaydi.