Estoy usando socket.io y obtengo este error:
throw new ERR_INVALID_ARG_TYPE(name, 'Function', value); ^ TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type function. Received undefinedEstoy creando un controlador para las devoluciones de llamada en el zócalo, así es como se ve:
const { onDisconnect } = require('./app/controllers/socket'); /* ... */ io.on('connection', (socket) => { socket.on('disconnect', onDisconnect(socket)); });Recibo el error justo en la función "onDisconect". Sin embargo, si declaro la función de esta manera, funciona:
io.on('connection', (socket) => { socket.on('disconnect', () => { console.log(`${socket.id} disconnected`); }); });Tengo la función "onDisconect" en otro script, que contiene esto:
const onDisconnect = (socket) => { console.log(`${socket.id} disconnected`); } module.exports = { onDisconnect };Eso es porque estás llamando a onDisconnect() , que devuelve undefined , que no es una función. Tienes dos opciones:
socket.on("disconnect", onDisconnect(socket)) a socket.on("disconnect", onDisconnect)onDisconnect : function onDisconnect(socket) { return () => { console.log(`${socket.id} disconnected`); }; }