Junior
За какво се използват сокетите във уеб разработката?
sobes.tech AI
Отговор от AI
За двупосочен обмен на данни между клиента (браузъра) и сървъра в реално време. За разлика от традиционния HTTP, където клиентът инициира заявката, а сървърът отговаря, сокетите позволяват на сървъра да изпраща данни към клиента по всяко време без предварителна заявка.
Примери за използване:
- Чат приложения: Моментална доставка на съобщения между потребителите.
- Онлайн игри: Синхронизиране на състоянията на играчите и игровия свят в реално време.
- Търговски платформи: Актуализиране на котировки на акции или криптовалути без презареждане на страницата.
- Известия: Изпращане на push известия към потребителите при промяна на статуса на поръчка, ново съобщение и т.н.
- Съвместно редактиране на документи: Синхронизиране на промените между няколко потребителя.
Сокетите се реализират върху протокола TCP и обикновено използват протокола WebSocket, който осигурява постоянна връзка между клиента и сървъра след първоначалното 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), което я прави по-ефективна за приложения, изискващи честа размяна на данни в реално време.