public static void Dispatching(this Network network, Packet packet) { var type = MessageCommandStorage.GetMsgType(packet.MsgTypeCode); if (MessageSubscriberStorage.TryGetSubscriber(packet.NetCommand, type, out ISubscriber subscriber)) { subscriber.Receive(network); return; } Log.Fatal($"消息命令:{packet.NetCommand} 消息类型:{packet.MsgTypeCode}找不到订阅器。", LoggerBllType.Network, packet.ToJson()); }
public void Receive(Network network) { if (this.MsgTypeCode != network.RecvPacket.MsgTypeCode) { if (network.RecvPacket.MsgTypeCode != (int)BasicMessageType.Int) { return; } if (this.MessageType.BaseType != typeof(Enum)) { return; } } if (!MessageSubscriberStorage.ExistSubscriberCmd(network.RecvPacket.NetCommand, this.MessageType)) { return; } var message = network.RecvPacket.Read <Message>(); Subscribe(network, message, network.RecvPacket.NetCommand); }