问题很简单, socket.io
(eg. "create-room", "join-room", "deleted-room")
的房间事件触发两次。
io.on('connection', async socket => {
const channel_id = socket.handshake['query']['channel'] as string
socket.join(channel_id)
})
io.of('/').adapter.on('create-room', (room) => {
console.log(`socket has created ${room}`)
})
现在假设创建了一个名为“demo”的房间 日志说:
socket has created fa3x6j6Zq7HZiRgYAAAB
socket has created demo
主要尝试这样做,因为我想在创建房间时创建一个
mongodb
监视流并将其存储在数组中,并且当删除通道时,通过从该数组获取流来关闭该流
但是由于这会触发两次,所以我将两个相同的流添加到该数组中
我怎样才能阻止这个?或者这只是一个错误
很明显
each socket automatically joins a room identified by its own id
引用@GrafiCode
我实际上没有注意到这是套接字ID,该信息可能足以通过使用某些条件来解决这个问题