No puedo entender lo que me estoy perdiendo aquí. Para el segundo caso, verifiqué socket.id mientras enviaba el mensaje y lo registré cuando se recibió la respuesta, resultó ser el mismo
socket.js
var socket = require('socket.io')(), socketApi = {}; socketApi.io = socket; socketApi.io.on('connection',(client) => { client.on('clientMessage', (msg) => { console.log('hi'); client.emit('serverMessage',msg); }) client.on('disconnect',() => { socketApi.io.emit('serverMessage','client is disconnected'); console.log('disconnected'); }) }) module.exports = socketApi;cliente.js
getServerResponse() { socket.on('serverMessage',(msg) => { console.log(msg); }) }De acuerdo con los documentos broadcast.emit envía a todos excepto al remitente y emit envía solo al remitente: https://socket.io/docs/emit-cheatsheet/ .
Estaba en el mismo problema, así que terminé llamando a ambos:
// socket.io server io.on('connection', socket => { socket.on('message', (data) => { messages.push(data) socket.broadcast.emit('message', data) // sends to all except the sender socket.emit('message', data) // sends to the sender }) })