Node.js WebSocket сервер
Реальный сервер для WebRTC сигнализации и реального времени
WebSocket Server
ProductionНа этом сервере работает Node.js процесс, обслуживающий WebSocket соединения для WebRTC звонков и текстового чата. Сервер обрабатывает сигнализацию, управляет комнатами и передаёт медиа-данные.
8091
Порт
1000+
Одновременных
99.9%
Uptime
📊 Статус сервера
Порт 8091
🟢 Активен
WebSocket соединения
Node.js версия
v18.20.4
LTS
Uptime
up 1 week, 14 hours, 29 minutes
Бесперебойная работа
PID
24391
Идентификатор процесса
🏗️ Архитектура сервера
WebSocket сервер
// server.js - Основной сервер const WebSocket = require('ws'); const http = require('http'); const server = http.createServer(); const wss = new WebSocket.Server({ server, port: 8091 }); wss.on('connection', (ws) => { console.log('🟢 Новое соединение'); // Обработка сообщений ws.on('message', (message) => { const data = JSON.parse(message); handleMessage(ws, data); }); });
Обработка сообщений
// handlers.js - Обработчики function handleMessage(ws, data) { switch(data.type) { case 'register': ws.send(JSON.stringify({ type: 'registered', session_uuid: generateUUID(), timestamp: Date.now() })); break; case 'chat': broadcastMessage(data, ws); break; case 'call_offer': case 'ice_candidate': forwardToPeer(data); break; } }
WebRTC сигнализация
// webrtc.js - Сигнализация function handleWebRTC(ws, data) { const { callId, sdp, candidate } = data; // Поиск получателя по callId const targetPeer = findPeer(callId); if (targetPeer) { targetPeer.ws.send(JSON.stringify({ type: data.type, from: ws.clientId, sdp: sdp, candidate: candidate })); } }
Управление комнатами
// rooms.js - Комнаты class RoomManager { constructor() { this.rooms = new Map(); } joinRoom(roomId, client) { if (!this.rooms.has(roomId)) { this.rooms.set(roomId, []); } this.rooms.get(roomId).push(client); // Уведомление других участников this.broadcastToRoom(roomId, { type: 'user_joined', userId: client.id }); } }
⚙️ Конфигурация
Окружение
| NODE_ENV | production |
| PORT | 8091 |
| WS_MAX_PAYLOAD | 100MB |
ICE Серверы
| STUN | stun:stun.example.com:19302 |
| TURN | turn:turn.example.com:3478 |
| Авторизация | •••••••• |
📈 Мониторинг
1,234
Активных соединений
45.2 GB
Передано данных
156
Активных комнат
23 ms
Средняя задержка