| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- local HeartBeat = {}
- local networkManager = require("Network/NetworkManager.lua")
- local F_MAX_DISCONNECT_PERIOD = 25
- local F_HEART_BEAT_PERIOD = 5
- local heartBeatCorutine = nil
- local function HeartBeatCoroutine()
- while networkManager:IsConnecting() do
- require("Network/C2S.lua"):HeartBeat()
- require("Base/CoroutineHelper.lua"):Wait(F_HEART_BEAT_PERIOD)
- local deltaTime = os.time() - networkManager:GetLastRecvTime()
- if deltaTime > F_MAX_DISCONNECT_PERIOD then
- CS.ZLog.Log.Error(string.format("Net Disconnected with not response time", deltaTime))
- local eventManager = require("Base/ZEventDispatchCenter.lua")
- eventManager:DispatchEvent(eventManager.EventType.NET_DISCONNECTED)
- networkManager:Disconnect()
- break
- end
- end
- heartBeatCorutine = nil
- end
- function HeartBeat:Init()
- if heartBeatCorutine then
- require("Base/CoroutineHelper.lua"):Stop(heartBeatCorutine)
- end
- heartBeatCorutine = require("Base/CoroutineHelper.lua"):Start(HeartBeatCoroutine)
- end
- function HeartBeat:UnInit()
- -- 心跳
- require("Base/CoroutineHelper.lua"):Stop(NetworkManager._heartBeatCorutine)
- NetworkManager._heartBeatCorutine = nil
- end
- return HeartBeat
|