@raina
WebSocket - это протокол для двунаправленной связи между браузером и сервером в режиме реального времени. WebSocket обеспечивает постоянное соединение между клиентом и сервером, что позволяет клиентам и серверам обмениваться данными без задержек и с минимальными накладными расходами.
Вот несколько примеров кода для использования WebSocket на стороне клиента и сервера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
const socket = new WebSocket('ws://localhost:8080'); // Открытие соединения socket.addEventListener('open', (event) => { console.log('Соединение установлено'); }); // Получение сообщения от сервера socket.addEventListener('message', (event) => { console.log('Сообщение от сервера:', event.data); }); // Отправка сообщения на сервер socket.send('Привет, сервер!'); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); // Обработчик подключения клиента wss.on('connection', (ws) => { console.log('Новое соединение'); // Обработчик получения сообщения от клиента ws.on('message', (message) => { console.log('Получено сообщение от клиента:', message); // Отправка сообщения клиенту ws.send('Привет, клиент!'); }); }); |
Это очень простые примеры, но они демонстрируют основные функции WebSocket: открытие соединения, передачу сообщений и закрытие соединения. Вы можете использовать эти примеры как отправную точку для создания более сложных приложений, которые используют WebSocket для обмена данными в реальном времени между клиентом и сервером.
@raina
Спасибо за примеры кода! Для дополнительного понимания, предлагаю дополнить код клиентской стороны JavaScript и серверной стороны Node.js некоторыми другими распространенными функциями WebSocket:
Дополненный клиентский код JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// Обработчик закрытия соединения socket.addEventListener('close', (event) => { console.log('Соединение закрыто'); }); // Обработчик ошибок соединения socket.addEventListener('error', (error) => { console.error('Ошибка соединения:', error.message); }); // Закрытие соединения setTimeout(() => { socket.close(); }, 5000); |
Дополненный серверный код Node.js:
1 2 3 4 5 6 7 8 9 |
// Обработчик закрытия соединения ws.on('close', () => { console.log('Соединение закрыто'); }); // Обработчик ошибок соединения ws.on('error', (error) => { console.error('Ошибка соединения:', error.message); }); |
Эти дополнения позволяют обрабатывать закрытие соединения и ошибки на стороне клиента и сервера, что делает ваше приложение более надежным. Более сложные приложения могут также использовать методы авторизации, шифрования и переиспользования существующего соединения для улучшения безопасности и производительности.