socket.io如何作为判断是否监听

vue前端触发一个事件需要监听一个消息
比如新开一个房间,监听人员的加入

socket.on('join',(man)=>{
    this.manArr.push(man)
}

为确保由于原socket断开导致的无监听,每次触发事件后都开启监听,但这就会导致可能出现重复监听,造成监听结果的重复,比如新加入一个小王,结果是

小王 加入了
小王 加入了

第三次就变成

小王 加入了
小王 加入了
小王 加入了

这里想问 如果判断这个 join已经处于监听状态呢。

if(!监听){
    监听
}

阅读 5.2k
2 个回答

已找到答案,判断socket对象是否包含元素
例如监听的是notify则:
if(user.socket._callbacks.$notify){
...

房间内的用户应该在server进行一份维护。
每当用户进入时,若用户不存,则为新加入用户,可进行通知;否则,则不用通知。
另外,用户连接应该有一个连接超时断开的机制。

推荐问题