📊 Статус сервера

Порт 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
Средняя задержка