mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
56 lines
1.6 KiB
C#
56 lines
1.6 KiB
C#
namespace ET.Server
|
|
{
|
|
[EntitySystemOf(typeof(RouterNode))]
|
|
[FriendOf(typeof(RouterNode))]
|
|
public static partial class RouterNodeSystem
|
|
{
|
|
[EntitySystem]
|
|
private static void Awake(this RouterNode self)
|
|
{
|
|
long timeNow = self.Fiber().TimeInfo.ServerNow();
|
|
self.LastRecvInnerTime = timeNow;
|
|
self.LastRecvOuterTime = timeNow;
|
|
self.OuterIpEndPoint = null;
|
|
self.InnerIpEndPoint = null;
|
|
self.RouterSyncCount = 0;
|
|
self.OuterConn = 0;
|
|
self.InnerConn = 0;
|
|
}
|
|
|
|
[EntitySystem]
|
|
private static void Destroy(this RouterNode self)
|
|
{
|
|
self.OuterConn = 0;
|
|
self.InnerConn = 0;
|
|
self.LastRecvInnerTime = 0;
|
|
self.LastRecvOuterTime = 0;
|
|
self.OuterIpEndPoint = null;
|
|
self.InnerIpEndPoint = null;
|
|
self.InnerAddress = null;
|
|
self.RouterSyncCount = 0;
|
|
self.SyncCount = 0;
|
|
}
|
|
|
|
public static bool CheckOuterCount(this RouterNode self, long timeNow)
|
|
{
|
|
if (self.LastCheckTime == 0)
|
|
{
|
|
self.LastCheckTime = timeNow;
|
|
}
|
|
|
|
if (timeNow - self.LastCheckTime > 1000)
|
|
{
|
|
//Log.Debug($"router recv packet per second: {self.LimitCountPerSecond}");
|
|
self.LimitCountPerSecond = 0;
|
|
self.LastCheckTime = timeNow;
|
|
}
|
|
|
|
if (++self.LimitCountPerSecond > 1000)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
} |