Проверяет понимание протокола WebSocket для двусторонней связи в реальном времени.
WebSocket — это протокол связи, который обеспечивает полнодуплексное (двустороннее) соединение между клиентом и сервером через один TCP-канал. В отличие от HTTP, где клиент отправляет запрос и ждет ответа, WebSocket позволяет серверу отправлять данные клиенту в любой момент без предварительного запроса. Это делает его идеальным для приложений, требующих низкой задержки и частого обновления данных, таких как чаты, онлайн-игры, биржевые котировки или совместное редактирование документов.
Соединение начинается с HTTP-запроса от клиента, который содержит заголовок Upgrade: websocket. Сервер, поддерживающий WebSocket, отвечает статусом 101 Switching Protocols, и после этого соединение переключается на протокол WebSocket. С этого момента данные передаются в виде фреймов (сообщений) без дополнительных HTTP-заголовков, что снижает накладные расходы. Соединение остается открытым, пока одна из сторон не закроет его явно.
const socket = new WebSocket('wss://example.com/chat');
socket.onopen = () => {
console.log('Соединение установлено');
socket.send('Привет, сервер!');
};
socket.onmessage = (event) => {
console.log('Получено сообщение:', event.data);
};
socket.onclose = () => {
console.log('Соединение закрыто');
};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);
});
});WebSocket стоит применять, когда требуется постоянное двустороннее общение с низкой задержкой и минимальным оверхедом. Он не заменяет HTTP, а дополняет его для сценариев реального времени. Если ваше приложение нуждается в частых обновлениях данных от сервера без опроса, WebSocket — правильный выбор.