Junior — Middle
Μπορείτε να εξηγήσετε τη λειτουργία του πρωτοκόλλου WebSocket και πώς διασφαλίζει μια σταθερή σύνδεση μεταξύ διακομιστή και πελάτη;
sobes.tech AI
Απάντηση από AI
Το WebSocket είναι ένα πρωτόκολλο που παρέχει μια διαρκή διπλής κατεύθυνσης σύνδεση μεταξύ πελάτη και διακομιστή πάνω από το TCP. Σε αντίθεση με το κλασικό HTTP, όπου ο πελάτης ξεκινά αιτήματα, το WebSocket επιτρέπει στον διακομιστή να στέλνει δεδομένα στον πελάτη οποιαδήποτε στιγμή.
Αρχή λειτουργίας:
- Ο πελάτης ξεκινά ένα αίτημα HTTP με την κεφαλίδα
Upgrade: websocketγια να μεταβεί στο πρωτόκολλο WebSocket. - Ο διακομιστής επιβεβαιώνει τη μετάβαση και δημιουργείται μια διαρκής σύνδεση.
- Μετά την εγκατάσταση της σύνδεσης, ο πελάτης και ο διακομιστής μπορούν να ανταλλάσσουν μηνύματα σε πραγματικό χρόνο χωρίς την ανάγκη επαναλαμβανόμενων αιτημάτων HTTP.
Αυτό επιτρέπει τη δημιουργία εφαρμογών με χαμηλή καθυστέρηση, όπως chat, παιχνίδια, χρηματοοικονομικά τερματικά.
Παράδειγμα χρήσης 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 παρέχει μια αποδοτική και διαρκή σύνδεση για ανταλλαγή δεδομένων σε πραγματικό χρόνο.