Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ του πρωτοκόλλου WebSocket και του τυπικού πρωτοκόλλου HTTP κατά την ανταλλαγή δεδομένων στο δίκτυο;

sobes.tech AI

Απάντηση από AI

Η βασική διαφορά μεταξύ WebSocket και του πρότυπου HTTP έγκειται στον τρόπο εγκατάστασης και διατήρησης της σύνδεσης για την ανταλλαγή δεδομένων:

  • HTTP είναι ένα πρωτόκολλο αιτήματος-απάντησης. Ο πελάτης στέλνει ένα αίτημα, ο διακομιστής απαντά, και η σύνδεση συνήθως κλείνει. Για να λάβει νέα δεδομένα, ο πελάτης πρέπει να στείλει ένα νέο αίτημα.

  • WebSocket είναι ένα πρωτόκολλο που δημιουργεί μια διαρκή, διπλής κατεύθυνσης σύνδεση μεταξύ πελάτη και διακομιστή. Μετά το αρχικό χειραψία HTTP, η σύνδεση μεταβαίνει σε λειτουργία WebSocket, και και τα δύο μέρη μπορούν να στέλνουν δεδομένα οποιαδήποτε στιγμή χωρίς την ανάγκη επαναλαμβανόμενων αιτημάτων.

Πλεονεκτήματα του WebSocket:

  • Χαμηλή καθυστέρηση στην ανταλλαγή δεδομένων
  • Αποτελεσματικότητα σε συχνή ανταλλαγή μηνυμάτων
  • Υποστήριξη σε πραγματικό χρόνο (π.χ. συνομιλίες, παιχνίδια, χρηματοοικονομικά δεδομένα)

Παράδειγμα χρήσης σε Node.js:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', ws => {
  ws.on('message', message => {
    console.log(`Ληφθέν μήνυμα: ${message}`);
    ws.send(`Απάντηση: ${message}`);
  });
});