3

How to call the controller when I do emit in socket.io

I want that when calling emit from the client the data is first saved in the db and then sent to it.

My code:

import SocketIO from '@ioc:Socket.IO'

SocketIO.afterStart(() => {

   const io = SocketIO.io()

     io.use((socket, next) => {
     //Middleware
     next()
   });

   io.on('connection', (socket) => {

   io.emit(`room.6`, {
     type: 'connected'
     //role: socket.handshake.query.user
   });

   socket.on('disconnect', () => {
     io.emit(`room.6`, {
       type: 'disconnected',
      //role: socket.handshake.query.user
    })
   });

   socket.on(`room.6`, (data) => {
     io.emit(`room.6`, //Here the controller should be called)
   });
 });
})

0 Answers0