Файловый менеджер - Редактировать - /home/gqdcvggs/hizhat.com/backend.zip
Назад
PK E �[r��NG G server.jsnu �[��� const express = require('express'); const http = require('http'); const cors = require('cors'); const { Server } = require('socket.io'); const dotenv = require('dotenv'); const connectDB = require('./config/db'); const fs = require('fs'); const https = require('https'); require('dotenv').config(); // Import des modèles const Conversation = require('./models/Conversation'); dotenv.config(); connectDB(); const app = express(); const privateKey = fs.readFileSync('./ssl/private.key', 'utf8'); const certificate = fs.readFileSync('./ssl/cert.pem', 'utf8'); const ca = fs.readFileSync('./ssl/ca.pem', 'utf8'); const credentials = { key: privateKey, cert: certificate, ca: ca }; const server = https.createServer(credentials, app); const io = new Server(server, { cors: { origin: '*', methods: ['GET', 'POST'] } }); // Middleware app.use(cors({ origin: '*', methods: 'GET,POST,PUT,DELETE', credentials: true })); app.use(express.json()); // Routes app.use('/api/auth', require('./routes/authRoute')); app.use('/api/users', require('./routes/userRoute')); app.use('/api/conversations', require('./routes/conversationRoute')); app.use('/api/statistics', require('./routes/statisticsRoute')); app.use('/uploads', express.static('uploads')); app.use('/api/booking', require('./routes/bookingRoutes')); app.use('/public', express.static('public')); io.on('connection', (socket) => { console.log('Un utilisateur s\'est connecté:', socket.id); socket.on('join-conversation', (conversationId) => { socket.join(conversationId); console.log(`Utilisateur a rejoint la conversation : ${conversationId}`); }); socket.on('new-message', async ({ conversationId, message }) => { console.log('Événement new-message reçu :', { conversationId, message }); try { const conversation = await Conversation.findById(conversationId); if (!conversation) { console.error('Conversation non trouvée pour new-message'); return; } // Ne pas resauvegarder le message, mais émettre l'événement console.log('Message émis aux autres clients via Socket.IO'); io.to(conversationId).emit('message-received', { conversationId, message }); } catch (error) { console.error('Erreur lors de la gestion du message via Socket.IO:', error); } }); // Événement : L'utilisateur est en train d'écrire socket.on('typing', ({ conversationId, userId }) => { socket.to(conversationId).emit('user-typing', userId); // Émettre à tous sauf à l'expéditeur }); // Événement : L'utilisateur a arrêté d'écrire socket.on('stop-typing', ({ conversationId, userId }) => { socket.to(conversationId).emit('user-stopped-typing', userId); }); // Déconnexion socket.on('disconnect', () => { console.log('Un utilisateur s\'est déconnecté:', socket.id); }); }); const PORT = process.env.PORT || 5000; server.listen(PORT, '0.0.0.0', () => { console.log(`Server running on port ${PORT}`); }); PK E �[/��D:` :` "