Tengo un servidor express con socketio en el nodo y un cliente en localhost. Como he estado tratando de pasar funciones entre ellos usando socket.emit , me di cuenta de que no puedo pasar funciones anónimas y vincularlas al contexto de mi servidor (para que las variables/declaraciones se ejecuten completamente en el lado del servidor). Lo que quiero que suceda es que la bar se registre en el lado del servidor.
Aquí hay un ejemplo:
//CLIENT SIDE socket.emit('foo', () => console.log('bar')); //SERVER SIDE socket.on('foo', f => f()); Cuando ejecuto este código, la bar se registra en el lado del cliente, en lugar del lado del servidor. También probé lo siguiente:
socket.on('foo', f => f.bind(this)()); socket.on('foo', f => { global['g'] = f; g(); };Pero nada parece funcionar. Incluso intenté envolverlo en una función anónima secundaria con los mismos métodos, pero no tuve suerte. ¿¿Pensamientos??