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:
- Mijoz
Upgrade: websocketsarlavhasi bilan HTTP so'rovini boshlaydi va WebSocket protokoliga o'tadi. - Server o'tishni tasdiqlaydi va doimiy ulanish o'rnatiladi.
- 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.