ClientDispatcher.cs 788 B

12345678910111213141516171819202122232425262728
  1. using System;
  2. namespace Model
  3. {
  4. public class ClientDispatcher: IMessageDispatcher
  5. {
  6. public void Dispatch(Session session, Opcode opcode, int offset, byte[] messageBytes, AMessage message)
  7. {
  8. // 如果是帧同步消息,交给ClientFrameComponent处理
  9. FrameMessage frameMessage = message as FrameMessage;
  10. if (frameMessage != null)
  11. {
  12. Game.Scene.GetComponent<ClientFrameComponent>().Add(frameMessage);
  13. return;
  14. }
  15. // 普通消息或者是Rpc请求消息
  16. if (message is AMessage || message is ARequest)
  17. {
  18. MessageInfo messageInfo = new MessageInfo(opcode, message);
  19. Game.Scene.GetComponent<MessageDispatherComponent>().Handle(messageInfo);
  20. return;
  21. }
  22. throw new Exception($"message type error: {message.GetType().FullName}");
  23. }
  24. }
  25. }