/
Jzargo
/
chat-project
Обзор
Документация
Войти
/
Jzargo
/
chat-project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
project
server/server.js
53 строки
1 KB
Jzargo0729
321
27 мар 2025, 21:36
27 мар 2025, 21:36
18e1727
Код
Авторство
О чём код?
const fastify = require('fastify')(); const Database = require('./database'); const WebSocket = require('ws'); const db = new Database(); // HTTP endpoint для получения истории fastify.get('/messages', async () => { return db.getMessages(); }); // WebSocket сервер const wss = new WebSocket.Server({ server: fastify.server }); wss.on('connection', (ws) => { ws.on('message', (message) => { try { const data = JSON.parse(message); if (data.type === 'message') { // Сохраняем сообщение в БД const msg = db.addMessage(data.user, data.text); // Формируем ответ с сервера const response = JSON.stringify({ type: 'message', id: msg.id, user: msg.user, text: msg.text, timestamp: msg.timestamp }); // Рассылаем всем подключенным клиентам wss.clients.forEach(client => { if (client.readyState === WebSocket.OPEN) { client.send(response); } }); } } catch (e) { console.error('Ошибка обработки сообщения:', e); } }); }); // Запуск сервера fastify.listen({ port: 3000 }, (err) => { if (err) { console.error(err); process.exit(1); } console.log('Сервер запущен на http://localhost:3000'); });