app.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const express = require('express');
  2. const app = express();
  3. const http = require('http');
  4. const { Server } = require('socket.io');
  5. const ChatModel = require('./model/chat');
  6. const cors = require('cors');
  7. const logger = require('morgan');
  8. const helmet = require('helmet');
  9. const formatsLogger = app.get('env') === 'development' ? 'dev' : 'short';
  10. app.use(helmet());
  11. app.use(logger(formatsLogger));
  12. app.use(cors());
  13. const server = http.createServer(app);
  14. const io = new Server(server, {
  15. cors: {
  16. origin: '*',
  17. methods: ['GET', 'POST'],
  18. },
  19. });
  20. io.on('connection', (socket) => {
  21. console.log(socket.id);
  22. socket.emit('me', socket.id);
  23. socket.on(
  24. 'call',
  25. async ({ socketId, signalData, from, userId, companionId }) => {
  26. const { name, lastName } = await ChatModel.getByField(
  27. userId,
  28. companionId
  29. );
  30. io.to(socketId).emit('call', {
  31. signal: signalData,
  32. from,
  33. name,
  34. lastName,
  35. });
  36. }
  37. );
  38. socket.on('answer', (data) => {
  39. io.to(data.to).emit('accepted', { signal: data.signal });
  40. });
  41. });
  42. module.exports = server;