SessionAcceptTimeoutComponentSystem.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. namespace ET
  3. {
  4. [Timer(TimerType.SessionAcceptTimeout)]
  5. public class SessionAcceptTimeout : ATimer<SessionAcceptTimeoutComponent>
  6. {
  7. public override void Run(SessionAcceptTimeoutComponent self)
  8. {
  9. try
  10. {
  11. Log.Info("断开连接");
  12. self.Parent.Dispose();
  13. }
  14. catch (Exception e)
  15. {
  16. Log.Error($"move timer error: {self.Id}\n{e}");
  17. }
  18. }
  19. }
  20. [ObjectSystem]
  21. public class SessionAcceptTimeoutComponentAwakeSystem : AwakeSystem<SessionAcceptTimeoutComponent>
  22. {
  23. public override void Awake(SessionAcceptTimeoutComponent self)
  24. {
  25. self.Timer =
  26. TimerComponent.Instance.NewOnceTimer(TimeHelper.ServerNow() + 5000, TimerType.SessionAcceptTimeout,
  27. self);
  28. }
  29. }
  30. [ObjectSystem]
  31. public class SessionAcceptTimeoutComponentDestroySystem : DestroySystem<SessionAcceptTimeoutComponent>
  32. {
  33. public override void Destroy(SessionAcceptTimeoutComponent self)
  34. {
  35. TimerComponent.Instance.Remove(ref self.Timer);
  36. }
  37. }
  38. }