问题一
我在onWorkerStart方法里,通过mysql查询到所有设备上一次存的clientId 然后全执行一遍closeClient方法,全断开一遍 但发现断开后,还是能收到心跳数据,为什么?
执行了closeClient之后, 查看getAllClientIdList,里面还是有这个clientId
问题二 程序出错导致onWorkerStart方法重新被执行,之前已经连接的clientId会被断开么 ?
1 client_id 是临时id,不能存数据库。正确做法是gateway::bindUid($client_id, $uid) 或者 Gateway::joinGroup($client_id, $gid)绑定uid或者群组id,然后操作$uid或$gid 2 onWorkerStart 里不应该有关闭连接的操作 3 至于 onWorkerStart 里执行关闭所有连接,还有心跳,onWorkerStart一般是进程启动时触发的,这时候系统里可能没有任何连接,执行关闭就没有意义。后面有心跳数据说明后面有连接连上来了。
收到
1 client_id 是临时id,不能存数据库。正确做法是gateway::bindUid($client_id, $uid) 或者 Gateway::joinGroup($client_id, $gid)绑定uid或者群组id,然后操作$uid或$gid
2 onWorkerStart 里不应该有关闭连接的操作
3 至于 onWorkerStart 里执行关闭所有连接,还有心跳,onWorkerStart一般是进程启动时触发的,这时候系统里可能没有任何连接,执行关闭就没有意义。后面有心跳数据说明后面有连接连上来了。
收到