Junior
Якшӣ роҳҳои алоқа байни сервер ва мизоҷро тавсиф кунед.
sobes.tech AI
Ҷавоб аз AI
Ҳамчун роҳҳои асосии иртибот байни мизоҷ (браузер) ва сервер чандин роҳҳои асосӣ мавҷуданд.
-
HTTP/HTTPS (Polling/Short Polling):
- Мизоҷ дархостро ба сервер мефиристад ва интизор мешавад, ки ҷавоб бигирад.
- Сервер дархостро коркард мекунад ва ҷавоб мефиристад.
- Дар Short Polling, мизоҷ ба таври давомдор дархостҳоро ба сервер мефиристад, то навигардониҳоро санҷад.
- Ин содда аст дар иҷро, аммо барои навигардониҳои зуд-зуд самаранок нест, бо сабаби хароҷоти ҳар дархост.
// Намунаи простии Short Polling function checkUpdates() { fetch('/api/updates') .then(response => response.json()) .then(data => { // Коркарди маълумоти гирифташуда }) .finally(() => { setTimeout(checkUpdates, 5000); // Такрор дар 5 сония }); } checkUpdates(); -
Long Polling:
- Мизоҷ дархостро ба сервер мефиристад, ки онро боз медорад, то вақте ки маълумоти нав пайдо шавад ё вақти тамом шавад.
- Вақте ки маълумот пайдо мешавад, сервер фавран ҷавоб мефиристад, ва мизоҷ дархост нав месозад.
- Ин самараноктар аст аз Short Polling, аммо ҳанӯз ҳам дар байни гирифтани маълумот ва фиристодани дархости нав дер мешавад.
-
WebSockets:
- Воҳидсозии пайвасти доимӣ ва дуҷониба байни мизоҷ ва сервер.
- Пас аз барқарор кардани пайвастӣ, ҳар ду тараф метавонанд дар ҳар вақт маълумот фиристанд ва қабул кунанд, бе ниёз ба дархостҳои HTTP иловагӣ.
- Идеалӣ барои барномаҳои вақти воқеӣ (чатҳо, бозии онлайн, огоҳиномаҳо).
const socket = new WebSocket('ws://localhost:8080'); socket.onopen = function(event) { console.log('Пайвастӣ барқарор шуд'); socket.send('Салом сервер!'); }; socket.onmessage = function(event) { console.log('Паёми аз сервер гирифта шуд:', event.data); }; socket.onclose = function(event) { if (event.wasClean) { console.log(`Пайвастӣ тоза баста шуд, код=${event.code}, сабаб=${event.reason}`); } else { console.error('Пайвастӣ қатъ шуд'); } }; socket.onerror = function(error) { console.error('Хатои WebSocket:', error); }; -
Server-Sent Events (SSE):
- Имкон медиҳад, ки сервер маълумотро ба мизоҷ дар якҷоягӣ бо HTTP ирсол кунад.
- Мизоҷ ба ҷараёни ҳодисаҳо аз сервер обуна мешавад.
- Ин барои ҳолатҳое мувофиқ аст, ки сервер навигардониҳоро ба мизоҷ мефиристад, аммо мизоҷ маълумотро ба сервер намефиристад (масалан, ҷараёни хабарҳо, намоиши пешрафти вазифа).
const eventSource = new EventSource('/api/stream'); eventSource.onmessage = function(event) { console.log('Ҳодиса аз сервер гирифта шуд:', event.data); }; eventSource.onerror = function(error) { console.error('Хатои SSE:', error); eventSource.close(); // Баста кардани пайвастӣ дар ҳолати хато };
Ҳар як усул дорои афзалиятҳо ва нуқсонҳо аст, ва интихоби он вобаста ба талаботи барнома дар бораи зуд-зуд будани навигардониҳо, ҳаҷми маълумот ва ниёз ба иртиботи дуҷониба мебошад.