const express = require('express'); const app = express(); const http = require('http'); const { Server } = require('socket.io'); const ChatModel = require('./model/chat'); const cors = require('cors'); const logger = require('morgan'); const helmet = require('helmet'); const formatsLogger = app.get('env') === 'development' ? 'dev' : 'short'; app.use(helmet()); app.use(logger(formatsLogger)); app.use(cors()); const server = http.createServer(app); const io = new Server(server, { cors: { origin: '*', methods: ['GET', 'POST'], }, }); io.on('connection', (socket) => { console.log(socket.id); socket.emit('me', socket.id); socket.on( 'call', async ({ socketId, signalData, from, userId, companionId }) => { const { name, lastName } = await ChatModel.getByField( userId, companionId ); io.to(socketId).emit('call', { signal: signalData, from, name, lastName, }); } ); socket.on('answer', (data) => { io.to(data.to).emit('accepted', { signal: data.signal }); }); }); module.exports = server;