/// <summary> /// 构建一个盖亚网络系统 打包解包器实例 /// </summary> public GaiaPacker(IPackerPolicy packerPolicy, IMsgDefined msgdefined) { sentBuffer = new byte[Header.MaxPacketSize]; compSentBuffer = new byte[Header.MaxPacketSize]; this.packerPolicy = packerPolicy; this.msgDefined = msgdefined; }
public GBoxService() { events = new Events(); msgDefined = new GaiaMsgDefined(); entityDict = new Dictionary <ulong, Entity>(); entityTypeDict = new Dictionary <string, Type>(); var policy = new PackerPolicy(); policy.AddPackedPolicy(BinaryPacker.Packed); policy.AddPackedPolicy(ProtobufPacker.Packed); policy.AddUnpackedPolicy(BinaryPacker.Unpacked); policy.AddUnpackedPolicy(ProtobufPacker.Unpacked); packer = new GaiaPacker(policy, msgDefined); //var type = typeof(msg.Ping); //var msgname = type.FullName; //msgDefined.AddMsgDefined(msg.MsgId.PingMsgID, msgname, type); RegisterMsg <msg.Ping>(MsgId.PingMsgID); //type = typeof(Pong); //msgname = type.FullName; //msgDefined.AddMsgDefined(msg.MsgId.PongMsgID, msgname, type); RegisterMsg <Pong>(MsgId.PongMsgID); //type = typeof(RpcMsg); //msgname = type.FullName; //msgDefined.AddMsgDefined(msg.MsgId.CallMsgID, msgname, type); RegisterMsg <RpcMsg>(MsgId.CallMsgID); //type = typeof(CreateEntityNotify); //msgname = type.FullName; //msgDefined.AddMsgDefined(msg.MsgId.CreateEntityNotifyMsgID, msgname, type); RegisterMsg <CreateEntityNotify>(MsgId.CreateEntityNotifyMsgID, OnCreateEntity); RegisterRpcHandler(this); }