我不知道我在这里错过了什么。对于第二种情况,我在发送消息时检查了socket.id,并在收到响应时将其记录在案,结果是相同的。
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;client.js
getServerResponse() {
socket.on('serverMessage',(msg) => {
console.log(msg);
})
}发布于 2017-08-30 13:43:56
根据文档,broadcast.emit发送给所有用户,但发送方除外,而emit只发送给发送方:https://socket.io/docs/emit-cheatsheet/。
我在同一问题上,所以我最后打电话给这两个:
// 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
})
})https://stackoverflow.com/questions/43526759
复制相似问题