ActorMessageSenderSystem.cs 1013 B

123456789101112131415161718192021222324252627282930313233
  1. using System.Threading.Tasks;
  2. using ETModel;
  3. namespace ETHotfix
  4. {
  5. [ObjectSystem]
  6. public class ActorMessageSenderAwakeSystem : AwakeSystem<ActorMessageSender, long>
  7. {
  8. public override void Awake(ActorMessageSender self, long actorId)
  9. {
  10. self.Id = actorId;
  11. self.ActorId = actorId;
  12. self.Address = StartConfigComponent.Instance.Get(IdGenerater.GetAppIdFromId(self.ActorId)).GetComponent<InnerConfig>().IPEndPoint;
  13. }
  14. }
  15. public static class ActorMessageSenderHelper
  16. {
  17. public static void Send(this ActorMessageSender self, IActorMessage message)
  18. {
  19. Session session = Game.Scene.GetComponent<NetInnerComponent>().Get(self.Address);
  20. message.ActorId = self.ActorId;
  21. session.Send(message);
  22. }
  23. public static async Task<IActorResponse> Call(this ActorMessageSender self, IActorRequest message)
  24. {
  25. Session session = Game.Scene.GetComponent<NetInnerComponent>().Get(self.Address);
  26. message.ActorId = self.ActorId;
  27. return (IActorResponse)await session.Call(message);
  28. }
  29. }
  30. }