現(xiàn)在有一個(gè)需求,就是客服系統(tǒng)出現(xiàn)了客服在線上,然后掉線以后,未觸發(fā)disconnect事件,現(xiàn)在想要知道有沒(méi)有方法在服務(wù)端檢查鏈接是不是在線。
主要的目的是確保客服人員掉線的時(shí)候,服務(wù)端能夠感知到客服人員已經(jīng)掉線,如果直接拔網(wǎng)線,socketio 是無(wú)法感知到disconnect事件
做心跳大概是要這幾個(gè),第一,全部客戶端的socket對(duì)象,這個(gè)你可以在 connection 事件的時(shí)候,保存到一個(gè)數(shù)組里面去,第二個(gè)就是添加一個(gè)更新最后通信時(shí)間的事件,事件里面把最后通信時(shí)間更新到socket對(duì)象里面去,然后添加一個(gè) 全局定時(shí)器,里面循環(huán)判斷socket對(duì)象哪個(gè)的最后通信時(shí)間大于默認(rèn)時(shí)間,就可以算他已掉線了.至于最后一步,我看了下文檔,好像還真找不到讓phpsocketIo 掉線的方法,這個(gè)你就要去看看他源碼了.