IEntityActorHandler.cs 768 B

123456789101112131415161718192021222324252627282930
  1. using System.Threading.Tasks;
  2. namespace Model
  3. {
  4. public interface IEntityActorHandler
  5. {
  6. Task<bool> Handle(Session session, Entity entity, IActorMessage message);
  7. }
  8. /// <summary>
  9. /// gate session 收到的消息直接转发给客户端
  10. /// </summary>
  11. public class GateSessionEntityActorHandler : IEntityActorHandler
  12. {
  13. public async Task<bool> Handle(Session session, Entity entity, IActorMessage message)
  14. {
  15. message.Id = 0;
  16. ((Session)entity).Send((AMessage)message);
  17. return true;
  18. }
  19. }
  20. public class CommonEntityActorHandler : IEntityActorHandler
  21. {
  22. public async Task<bool> Handle(Session session, Entity entity, IActorMessage message)
  23. {
  24. return await Game.Scene.GetComponent<ActorMessageDispatherComponent>().Handle(session, entity, message);
  25. }
  26. }
  27. }