IEntityActorHandler.cs 815 B

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