InitMax()就是初始化上限數值 超時次數 超時上限
UpdateHeat()就是更新心跳包的 重新賦值當前與默認時間的差距秒數, 如果過段時間不更新不更新當前持有的秒數也不會更新 在CheckHeat()檢測超過限定的超時時間MaxLostTime 就是增加壹次Lostcount超時次數
KGHeartBeatManage<T,R>:IDisposable where R:KGHeartBeat 這裏的T就是妳們定義的每個會話管理類,R就是指定要繼承KGHeartBeat 的
初始化事件 InitTimerEvent(第壹個委托就是發送事件,第二個委托就是 每個心跳包如果超時就會回調回來,每隔多少毫秒觸發壹次檢測,每隔多少毫秒發送心跳包)
然後StartTimer()就可以開始觸發了
這邊定時器那裏加了個每次都會檢測ConnectDic字典裏面儲存的心跳包,如果超過最大上限超時次數就會回調 KGHeartBeatManage裏面的第二個委托,告訴他這個連接已經超時,
AddConnectDic(對應的會話管理類,指定超時時間,超時次數)這裏會創建出對應的KGHeartBeat數據裏存在字典裏面,每個會話管理對應壹個心跳包數據
RemoveConnectDic(T obj) 這裏是移除字典裏面 該會話管理對應的心跳包
因為會有多線程觸發的問題這裏用了lock互斥鎖,排隊來,
/LKaiGuo/KGScriptGenerator 喜歡的給我點個星星啊
u3d萌新QQ群844087555 歡迎進來灌水=。=