在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ socket.io如何作為判斷是否監(jiān)聽

socket.io如何作為判斷是否監(jiān)聽

vue前端觸發(fā)一個(gè)事件需要監(jiān)聽一個(gè)消息
比如新開一個(gè)房間,監(jiān)聽人員的加入

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

為確保由于原socket斷開導(dǎo)致的無監(jiān)聽,每次觸發(fā)事件后都開啟監(jiān)聽,但這就會(huì)導(dǎo)致可能出現(xiàn)重復(fù)監(jiān)聽,造成監(jiān)聽結(jié)果的重復(fù),比如新加入一個(gè)小王,結(jié)果是

小王 加入了
小王 加入了

第三次就變成

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

這里想問 如果判斷這個(gè) join已經(jīng)處于監(jiān)聽狀態(tài)呢。

if(!監(jiān)聽){
    監(jiān)聽
}

回答
編輯回答
執(zhí)念

已找到答案,判斷socket對(duì)象是否包含元素
例如監(jiān)聽的是notify則:
if(user.socket._callbacks.$notify){
...

2018年2月5日 12:48
編輯回答
情未了

房間內(nèi)的用戶應(yīng)該在server進(jìn)行一份維護(hù)。
每當(dāng)用戶進(jìn)入時(shí),若用戶不存,則為新加入用戶,可進(jìn)行通知;否則,則不用通知。
另外,用戶連接應(yīng)該有一個(gè)連接超時(shí)斷開的機(jī)制。

2017年7月26日 00:50