Socket.io 房间事件触发两次

问题描述 投票:0回答:1

问题很简单, 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
监视流并将其存储在数组中,并且当删除通道时,通过从该数组获取流来关闭该流

但是由于这会触发两次,所以我将两个相同的流添加到该数组中

我怎样才能阻止这个?或者这只是一个错误

javascript mongodb server socket.io
1个回答
0
投票

很明显

each socket automatically joins a room identified by its own id
引用@GrafiCode

我实际上没有注意到这是套接字ID,该信息可能足以通过使用某些条件来解决这个问题

© www.soinside.com 2019 - 2024. All rights reserved.