Sobes.tech
Junior

Сокетҳо дар таҳияи веб барои чӣ истифода мешаванд?

sobes.tech AI

Ҷавоб аз AI

Барномаи муоширати дутарафа байни мизоҷ (браузер) ва сервер дар вақти воқеӣ. Баръакс аз HTTP анъанавӣ, ки дар он мизоҷ дархостро оғоз мекунад ва сервер ҷавоб медиҳад, сӯкетҳо имкон медиҳанд, ки сервер дар ҳар вақти дилхоҳ маълумотро ба мизоҷ фиристад бе дархости пешакӣ.

Маслиҳатҳои истифода:

  • Барномаҳои чат: Расонидани фаврии паёмҳо байни корбарон.
  • Бозиҳои онлайн: Синхронизатсияи ҳолати бозигарон ва ҷаҳони бозӣ дар вақти воқеӣ.
  • Платформҳои савдо: Навсозии нархҳои саҳҳом ё криптовалютҳо бе навсозии саҳифа.
  • Эъломномаҳо: фиристодани эъломномаҳои push ба корбарон дар ҳолати тағйирёбии вазъи фармоиш, паёми нав ва ғайра.
  • Таҳрири ҳамкорӣ дар ҳуҷҷатҳо: Синхронизатсияи тағиротҳо байни чанд корбар.

Сӯкетҳо дар рӯи протоколи TCP амалӣ мешаванд ва одатан протоколи WebSocket-ро истифода мебаранд, ки пас аз аввалин handshake HTTP пайвастагиро дар байни мизоҷ ва сервер таъмин мекунад.

// Намунаи коди мизоҷ барои барқарор кардани пайвастагии WebSocket
const ws = new WebSocket('ws://localhost:8080'); // Суроғаи сервери WebSocket

ws.onopen = () => {
  // Пайвастаги барқарор шуд
  console.log('Пайвастагии WebSocket барқарор шуд');
  ws.send('Салом, сервер!'); // Паём фиристодан ба сервер
};

ws.onmessage = (event) => {
  // Паёми аз сервер гирифта шуд
  console.log('Паёми аз сервер:', event.data);
};

ws.onclose = (event) => {
  // Пайвастаги баста шуд
  if (event.wasClean) {
    console.log(`Пайвастаги тоза баста шуд, коди=${event.code} сабаб=${event.reason}`);
  } else {
    console.error('Пайвастаги қатъ шуд');
  }
};

ws.onerror = (error) => {
  // Хатогӣ дар кор бо пайвастаги
  console.error('Хатои WebSocket:', error);
};

Пайвастагии WebSocket дорои хароҷоти пасти Overhead нисбат ба дархостҳои HTTP доимӣ (polling ё long polling) мебошад, ки онро барои барномаҳо, ки талаботи зиёдтарини маълумот дар вақти воқеӣ доранд, самараноктар месозад.