InnerMessageDispatcher.cs 828 B

123456789101112131415161718192021222324252627
  1. using System;
  2. namespace Model
  3. {
  4. public class InnerMessageDispatcher: IMessageDispatcher
  5. {
  6. public void Dispatch(Session session, ushort opcode, int offset, byte[] messageBytes, AMessage message)
  7. {
  8. // 收到actor消息分发给actor自己去处理
  9. if (message is ActorRequest actorRequest)
  10. {
  11. //Log.Info(MongoHelper.ToJson(actorRequest));
  12. Entity entity = Game.Scene.GetComponent<ActorManagerComponent>().Get(actorRequest.Id);
  13. entity.GetComponent<ActorComponent>().Add(new ActorMessageInfo() { Session = session, Message = actorRequest });
  14. return;
  15. }
  16. if (message is AMessage || message is ARequest)
  17. {
  18. Game.Scene.GetComponent<MessageDispatherComponent>().Handle(session, message);
  19. return;
  20. }
  21. throw new Exception($"message type error: {message.GetType().FullName}");
  22. }
  23. }
  24. }