using System.Threading.Tasks; namespace Model { public interface IEntityActorHandler { Task Handle(Session session, Entity entity, ActorRequest message); } /// /// gate session 收到的消息直接转发给客户端 /// public class GateSessionEntityActorHandler : IEntityActorHandler { public async Task Handle(Session session, Entity entity, ActorRequest message) { ((Session)entity).Send(message.AMessage); ActorResponse response = new ActorResponse { RpcId = message.RpcId }; session.Reply(response); } } public class CommonEntityActorHandler : IEntityActorHandler { public async Task Handle(Session session, Entity entity, ActorRequest message) { await Game.Scene.GetComponent().Handle(session, entity, message); } } }