1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 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) => {
- socket.emit('me', socket.id);
- socket.on('callTo', async ({ to, signalData, from, userId, companionId }) => {
- const { name, lastName, color, avatarUrl, number } =
- await ChatModel.getByField(userId, companionId);
- io.to(to).emit('incomeCall', {
- signal: signalData,
- from,
- name,
- lastName,
- color,
- avatarUrl,
- number,
- });
- });
- socket.on('answerCall', (data) => {
- io.to(data.to).emit('acceptedCall', { signal: data.signal });
- });
- });
- module.exports = server;
|