Sobes.tech
Junior

Kam tiek izmantojuši soketus tīmekļa izstrādē?

sobes.tech AI

Atbilde no AI

Divpusējs datu apmaiņas veids starp klientu (pārlūkprogrammu) un serveri reāllaikā. Atšķirībā no tradicionālā HTTP, kur klients iniciē pieprasījumu, bet serveris atbild, soketi ļauj serverim nosūtīt datus klientam jebkurā laikā bez iepriekšējas pieprasījuma:

Piemēri izmantošanai:

  • Čata lietotnes: Momentāna ziņojumu piegāde starp lietotājiem.
  • Tiešsaistes spēles: Spēlētāju un spēles pasaules stāvokļa sinhronizācija reāllaikā.
  • Tirdzniecības platformas: Akciju vai kriptovalūtu kotāciju atjaunināšana bez lapas pārkraušanas.
  • Paziņojumi: Push paziņojumu sūtīšana lietotājiem, mainoties pasūtījuma statusam, saņemot jaunu ziņu utt.
  • Dokumentu kopīga rediģēšana: Izmaiņu sinhronizācija starp vairākiem lietotājiem.

Soketi tiek realizēti virs TCP protokola un parasti izmanto WebSocket protokolu, kas nodrošina pastāvīgu savienojumu starp klientu un serveri pēc sākotnējās HTTP roku nospiedes.

// Piemērs klienta kodam WebSocket savienojuma izveidei
const ws = new WebSocket('ws://localhost:8080'); // WebSocket servera adrese

ws.onopen = () => {
  // Savienojums izveidots
  console.log('WebSocket savienojums izveidots');
  ws.send('Sveiki, server!'); // Ziņojuma sūtīšana serverim
};

ws.onmessage = (event) => {
  // Saņemta ziņa no servera
  console.log('Saņemta ziņa no servera:', event.data);
};

ws.onclose = (event) => {
  // Savienojums aizvērts
  if (event.wasClean) {
    console.log(`Savienojums tīri aizvērts, kods=${event.code} iemesls=${event.reason}`);
  } else {
    console.error('Savienojums pārtrūka');
  }
};

ws.onerror = (error) => {
  // Kļūda
  console.error('WebSocket kļūda:', error);
};

WebSocket savienojums ir ar zemākām izmaksām salīdzinājumā ar pastāvīgiem HTTP pieprasījumiem (polling vai long polling), padarot to efektīvāku lietojumiem, kuriem nepieciešama bieža datu apmaiņa reāllaikā.