問題一
我在onWorkerStart方法里,通過mysql查詢到所有設(shè)備上一次存的clientId
然后全執(zhí)行一遍closeClient方法,全斷開一遍
但發(fā)現(xiàn)斷開后,還是能收到心跳數(shù)據(jù),為什么?
執(zhí)行了closeClient之后,
查看getAllClientIdList,里面還是有這個clientId
問題二
程序出錯導(dǎo)致onWorkerStart方法重新被執(zhí)行,之前已經(jīng)連接的clientId會被斷開么 ?
1 client_id 是臨時id,不能存數(shù)據(jù)庫。正確做法是gateway::bindUid($client_id, $uid) 或者 Gateway::joinGroup($client_id, $gid)綁定uid或者群組id,然后操作$uid或$gid
2 onWorkerStart 里不應(yīng)該有關(guān)閉連接的操作
3 至于 onWorkerStart 里執(zhí)行關(guān)閉所有連接,還有心跳,onWorkerStart一般是進(jìn)程啟動時觸發(fā)的,這時候系統(tǒng)里可能沒有任何連接,執(zhí)行關(guān)閉就沒有意義。后面有心跳數(shù)據(jù)說明后面有連接連上來了。