//消息分发 public void DispatchMsgEvent(NetMsgBase msg) { // Debug.Log("接收协议" + msg.MsgType.ToString()); if (msg.MsgType == eNetMsgType.FRAME) { NetFrameMsg realMSg = (NetFrameMsg)msg; if (realMSg == null) { Debug.Log("协议 error"); return; } GameMain.GetInstance().logicManager.AddNewFrame(realMSg.frame); } else if (msg.MsgType == eNetMsgType.SYS) { Debug.Log("sys init"); NetSysMsg realMSg = (NetSysMsg)msg; GameMain.GetInstance().logicManager.Init(realMSg.localPid); } //string name = protocol.GetName(); //Debug.Log("分发处理消息 " + name); //if (eventDict.ContainsKey(name)) //{ // eventDict[name](protocol); //} //if (onceDict.ContainsKey(name)) //{ // onceDict[name](protocol); // onceDict[name] = null; // onceDict.Remove(name); //} }
private NetMsgBase ReadAndDecode(ByteBuffer byteBuffer) { int start = 0; int msgType = byteBuffer.GetInt(start, ref start); if (msgType == (int)eNetMsgType.FRAME) { string str = byteBuffer.GetString(start, ref start); LogicFrame frame = JsonConvert.DeserializeObject <LogicFrame>(str); NetFrameMsg msg = new NetFrameMsg(); msg.MsgType = (eNetMsgType)msgType; msg.frame = frame; return(msg); } else { NetSysMsg msg = new NetSysMsg(); msg.MsgType = (eNetMsgType)msgType; msg.localPid = byteBuffer.GetInt(start, ref start); return(msg); } }