public static void Send(NetMsg message) { if (mInstance != null) { mInstance.GetComponent<NetDispatcher>().Send(message); } }
public void Send(NetMsg msg) { if (sendDataQueue != null) { sendDataQueue.Enqueue(NetCoding.Serialize(msg)); } }
public static byte[] Serialize(NetMsg msg) { MemoryStream stream = new MemoryStream(); TCompactProtocol protocol = new TCompactProtocol(new TStreamTransport(stream, stream)); msg.Write(protocol); return stream.ToArray(); }
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; }
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()); } } }