使用socket io如何将消息共享给房间的所有用户,除了发送者



我正在使用socket io和express。我想把我的消息广播给房间的所有用户,但不是房间的用户,所有连接的用户都收到消息。房间号是房间号

const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const port = process.env.PORT || 8080;
const bodyParser = require('body-parser');
const cors = require('cors');
const path = require('path');
app.use(cors({origin: true}));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
io.on('connection', async (socket) => {
console.log('user connected');
}

Now This is message block

socket.on('message' , async (data)=>{
//want to broadcast message to all users except sender 
//Room is Group1Room and room id is RoomId
io.emit('message', {message:"hello" , socketId:socket.id})
//recive message 
io.on('message' , (data)=>{
console.log('data is ' data);
})
}
```ata,{ where: { id } });

插座。Emit用于全局触发事件。所有连接到套接字的用户都将监听并获取数据。要在房间内共享消息,请使用

socket.broadcast.to(roomid).emit()

你的代码将是这样的

socket.broadcast.to(event).emit( 'message' , {message:message,
socketId:socket.id
});

最新更新