示例#1
0
 public static void Send(NetMsg message)
 {
     if (mInstance != null)
     {
         mInstance.GetComponent<NetDispatcher>().Send(message);
     }
 }
示例#2
0
 public void Send(NetMsg msg)
 {
     if (sendDataQueue != null)
     {
         sendDataQueue.Enqueue(NetCoding.Serialize(msg));
     }
 }
示例#3
0
 public static byte[] Serialize(NetMsg msg)
 {
     MemoryStream stream = new MemoryStream();
     TCompactProtocol protocol = new TCompactProtocol(new TStreamTransport(stream, stream));
     msg.Write(protocol);
     return stream.ToArray();
 }
示例#4
0
 public static NetMsg Deserialize(byte[] byteArr)
 {
     MemoryStream stream = new MemoryStream(byteArr);
     TCompactProtocol protocol = new TCompactProtocol(new TStreamTransport(stream, stream));
     NetMsg _msg = new NetMsg();
     _msg.Read(protocol);
     return _msg;
 }
示例#5
0
 void dispatch(NetMsg message)
 {
     string msgName = message.MessageName;
     Type handler = Type.GetType("Limbo.Net." + msgName +
         "Handler, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nul");
     if (message.MessageBody == null && message.MessageBody.Count <= 0)
     {
         handler.InvokeMember("Default", BindingFlags.Default, null, null, null);
     }
     else
     {
         foreach (string methodName in message.MessageBody.Keys)
         {
             BaseMsg bmsg = message.MessageBody[methodName];
             List<object> args = new List<object>();
             if (bmsg.MsgType == VariableType.BOOL)
             {
                 args.Add(bmsg.BoolVal);
             }
             else if (bmsg.MsgType == VariableType.BYTE)
             {
                 args.Add(bmsg.ByteVal);
             }
             else if (bmsg.MsgType == VariableType.BYTEARR)
             {
                 args.Add(bmsg.ByteArrVal);
             }
             else if (bmsg.MsgType == VariableType.DOUBLE)
             {
                 args.Add(bmsg.DoubleVal);
             }
             else if (bmsg.MsgType == VariableType.INT)
             {
                 args.Add(bmsg.IntVal);
             }
             else if (bmsg.MsgType == VariableType.LIST)
             {
                 args.Add(bmsg.ListVal);
             }
             else if (bmsg.MsgType == VariableType.MAP)
             {
                 args.Add(bmsg.MapVal);
             }
             else if (bmsg.MsgType == VariableType.SET)
             {
                 args.Add(bmsg.SetVal);
             }
             else if (bmsg.MsgType == VariableType.STR)
             {
                 args.Add(bmsg.StrVal);
             }
             handler.InvokeMember(methodName, BindingFlags.Default, null, null, args.ToArray());
         }
     }
 }