ClientDispatcher.cs 724 B

123456789101112131415161718192021222324252627
  1. using System;
  2. namespace Model
  3. {
  4. public class ClientDispatcher: IMessageDispatcher
  5. {
  6. public void Dispatch(Session session, ushort opcode, int offset, byte[] messageBytes, AMessage message)
  7. {
  8. // 普通消息或者是Rpc请求消息
  9. if (message is AMessage || message is ARequest)
  10. {
  11. MessageInfo messageInfo = new MessageInfo(opcode, (AMessage)message);
  12. if (opcode < 2000)
  13. {
  14. Game.Scene.GetComponent<CrossComponent>().Run(CrossIdType.MessageDeserializeFinish, messageInfo);
  15. }
  16. else
  17. {
  18. Game.Scene.GetComponent<MessageDispatherComponent>().Handle(session, messageInfo);
  19. }
  20. return;
  21. }
  22. throw new Exception($"message type error: {message.GetType().FullName}");
  23. }
  24. }
  25. }