NetWorkMessage Analysis(ByteArray bytes) { NetWorkMessage msg = new NetWorkMessage(); bytes.ReadUShort(); //消息长度 bytes.ReadByte(); //模块名 int methodIndex = bytes.ReadUShort(); //方法名 //Debug.Log("methodIndex " + methodIndex); //Debug.Log("ReceiveDataLoad : " + BitConverter.ToString(bytes.Buffer)); try { msg.m_MessageType = m_methodNameInfo[methodIndex]; } catch { throw new Exception("没有找到消息号! " + methodIndex); } int re_len = bytes.Length - 5; msg.m_data = AnalysisData(msg.m_MessageType, bytes.ReadBytes(re_len)); if (msg.m_data == null) { throw new Exception("protocol msg.m_data is null !"); } return(msg); }
public void CallBack(string s) { try { if (s != null && s != "") { NetWorkMessage msg = new NetWorkMessage(); s = WWW.UnEscapeURL(s); s = s.Replace(c_endCharReplaceString, c_endChar.ToString()); Debug.Log(s); Dictionary <string, object> data = Json.Deserialize(s) as Dictionary <string, object>; msg.m_data = data; msg.m_MessageType = data["MT"].ToString(); m_messageCallBack(msg); } } catch (Exception e) { Debug.LogError("Message error ->" + s + "<-\n" + e.ToString()); } }
NetWorkMessage Analysis(ByteArray bytes) { NetWorkMessage msg = GetMessageByPool(); bytes.ReadUShort(); //消息长度 bytes.ReadByte(); //模块名 int methodIndex = bytes.ReadUShort(); //方法名 //Debug.Log("methodIndex " + methodIndex); //Debug.Log("ReceiveDataLoad : " + BitConverter.ToString(bytes.Buffer)); try { msg.m_MessageType = m_methodNameInfo[methodIndex]; } catch { Debug.LogError("没有找到消息号! " + methodIndex); return(null); } int re_len = bytes.Length - 5; msg.m_data = AnalysisData(msg.m_MessageType, bytes.ReadBytes(re_len)); return(msg); }
public void CallBack(string s) { try { if (s != null && s != "") { Debug.Log("JsonNetworkService ->" + s); NetWorkMessage msg = new NetWorkMessage(); s = WWW.UnEscapeURL(s); s = s.Replace(c_endCharReplaceString, c_endChar.ToString()); Dictionary <string, object> data = Json.Deserialize(s) as Dictionary <string, object>; msg.m_data = data; msg.m_MessageType = data["MT"].ToString(); if (data.ContainsKey("MsgCode")) { msg.m_MsgCode = (int)data["MsgCode"]; } m_messageCallBack(msg); } } catch (Exception e) { Debug.LogError("Message error ->" + s + "<-\n" + e.ToString()); } }
private void ReciveHBDealThread() { while (true) { if (NetworkManager.IsConnect) { NetWorkMessage msg = NetworkManager.GetHeartBeatMessage(); if (!string.IsNullOrEmpty(msg.m_MessageType)) { ResetReceviceTimer(); } else { m_receviceHeatBeatTimer -= ReciveThreadSleepTime; } //长期没收到服务器返回认为断线 if (m_receviceHeatBeatTimer <= 0) { Debug.Log("HeartBeat Break connect"); NetworkManager.DisConnect(); } } else { ResetReceviceTimer(); } Thread.Sleep(ReciveThreadSleepTime); } }
static void ReceviceMeaasge(NetWorkMessage message) { if (message.m_MessageType != null) { if (s_heatBeat.IsHeartBeatMessage(message)) { lock (s_messageListHeartBeat) { s_messageListHeartBeat.Add(message); } } else { lock (s_messageList) { s_messageList.Add(message); } } msgCount++; } else { Debug.LogError("ReceviceMeaasge m_MessageType is null !"); } }
public void InitMessagePool(int poolSize) { m_messagePool = new NetWorkMessage[poolSize]; for (int i = 0; i < poolSize; i++) { m_messagePool[i] = new NetWorkMessage(); } }
public override void OnReceiveMsg(NetWorkMessage message) { if (IsHeartBeatMessage(message)) { lock (s_messageListHeartBeat) { s_messageListHeartBeat.Add(message); } } }
static void Dispatch(NetWorkMessage msg) { try { InputNetworkEventProxy.DispatchMessageEvent(msg.m_MessageType, msg.m_data); } catch (Exception e) { Debug.LogError("Message Error:->" + Json.Serialize(msg.m_data) + "<-\n" + e.ToString()); } }
static void ReceviceMeaasge(NetWorkMessage message) { if (message.m_MessageType != null) { s_messageList.Add(message); } else { Debug.LogError("ReceviceMeaasge m_MessageType is null !"); } }
static void ReceviceMeaasge(NetWorkMessage message) { if (message != null) { s_messageList.Add(message); } else { Debug.LogError("Message Error: Message is null"); } }
public void CallBack(string s) { //Debug.Log("CallBack s ->" + s); try { if (s != null && s != "") { //解密 if (EncryptionService.IsSecret) { s = EncryptionService.Decrypt(s); } NetWorkMessage msg = new NetWorkMessage(); s = s.Replace(c_endCharReplaceString, c_endChar.ToString()); Dictionary <string, object> data = Json.Deserialize(s) as Dictionary <string, object>; msg.m_data = data; msg.m_MessageType = data["MT"].ToString(); if (data.ContainsKey("MsgCode")) { msg.m_MsgCode = int.Parse(data["MsgCode"].ToString()); if (m_msgCode != msg.m_MsgCode) { Debug.LogError("MsgCode error currentCode " + m_msgCode + " server code " + msg.m_MsgCode); if (msg.m_MsgCode > m_msgCode) { m_msgCode = msg.m_MsgCode; m_msgCode++; m_messageCallBack(msg); } } else { m_msgCode++; m_messageCallBack(msg); } } else { m_messageCallBack(msg); } } } catch (Exception e) { Debug.LogError("Message error ->" + s + "<-\n" + e.ToString()); } }
/// <summary> /// 判断消息是否是心跳包消息 /// </summary> /// <param name="msg"></param> /// <returns></returns> public virtual bool IsHeartBeatMessage(NetWorkMessage msg) { if (msg.m_MessageType == null) { return(false); } if (msg.m_MessageType == c_HeartBeatMT) { return(true); } return(false); }
public void CallBack(string s) { try { if(s != null && s != "") { //Debug.Log("MessageReceive ->" + s); NetWorkMessage msg = new NetWorkMessage(); //s = WWW.UnEscapeURL(s); //Debug.Log("MessageReceive0 ->" + s); s = s.Replace(c_endCharReplaceString, c_endChar.ToString()); //Debug.Log("MessageReceive1 ->" + s); Dictionary<string, object> data = Json.Deserialize(s) as Dictionary<string, object>; msg.m_data = data; msg.m_MessageType = data["MT"].ToString(); if(data.ContainsKey("MsgCode")) { msg.m_MsgCode = int.Parse(data["MsgCode"].ToString()); if(m_msgCode != msg.m_MsgCode) { Debug.LogError("MsgCode error currentCode " + m_msgCode + " server code " + msg.m_MsgCode); if (msg.m_MsgCode > m_msgCode) { m_msgCode = msg.m_MsgCode; m_msgCode++; } //throw new Exception(); } else { m_msgCode++; m_messageCallBack(msg); } } else { m_messageCallBack(msg); } } } catch(Exception e) { Debug.LogError("Message error ->" + s +"<-\n" + e.ToString()); } }
protected NetWorkMessage GetMessageByPool() { NetWorkMessage result = m_messagePool[m_msgPoolIndex]; m_msgPoolIndex++; if (m_msgPoolIndex >= m_messagePool.Length) { m_msgPoolIndex = 0; } return(result); }
/// <summary> /// 取出心跳消息 /// </summary> /// <returns></returns> public static NetWorkMessage GetHeartBeatMessage() { NetWorkMessage msg = default(NetWorkMessage); lock (s_messageListHeartBeat) { if (s_messageListHeartBeat.Count > 0) { msg = s_messageListHeartBeat[0]; s_messageListHeartBeat.RemoveAt(0); } } return(msg); }
static int GetHeartBeatMessage(IntPtr L) { try { ToLua.CheckArgsCount(L, 0); NetWorkMessage o = NetworkManager.GetHeartBeatMessage(); ToLua.PushValue(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/// <summary> /// 取出心跳消息 /// </summary> /// <returns></returns> public bool GetHeartBeatMessage() { NetWorkMessage msg = default(NetWorkMessage); lock (s_messageListHeartBeat) { if (s_messageListHeartBeat.Count > 0) { msg = s_messageListHeartBeat[0]; s_messageListHeartBeat.RemoveAt(0); return(true); } } return(false); }
//解包 private void ReceiveDataLoad(byte[] bytes) { try { //用于做数据处理,加解密,或者压缩于解压缩 ByteArray bas = new ByteArray(bytes); NetWorkMessage msg = Analysis(bas); m_messageCallBack(msg); } catch (Exception e) { Debug.LogError(e.ToString()); } }
NetWorkMessage Analysis(ByteArray bytes) { NetWorkMessage msg = new NetWorkMessage(); bytes.ReadShort(); //消息长度 bytes.ReadByte(); //模块名 int methodIndex = bytes.ReadShort(); //方法名 msg.m_MessageType = m_methodNameInfo[methodIndex]; int re_len = bytes.Length - 5; msg.m_data = AnalysisData(msg.m_MessageType, bytes.ReadBytes(re_len)); return(msg); }
static void Dispatch(NetWorkMessage msg) { try { InputNetworkEventProxy.DispatchMessageEvent(msg.m_MessageType, msg.m_data); } catch (Exception e) { string messageContent = ""; if (msg.m_data != null) { messageContent = Json.Serialize(msg.m_data); } Debug.LogError("Message Error: MessageType is ->" + msg.m_MessageType + "<- MessageContent is ->" + messageContent + "<-\n" + e.ToString()); } }
NetWorkMessage Analysis(ByteArray bytes) { NetWorkMessage msg = GetMessageByPool(); //Debug.Log("ReceiveDataLoad : " + BitConverter.ToString(bytes)); bytes.ReadUShort(); //消息长度 bytes.ReadByte(); //模块名 int methodIndex = bytes.ReadUShort(); //方法名 msg.m_MessageType = m_methodNameInfo[methodIndex]; int re_len = bytes.Length - 5; msg.m_data = AnalysisData(msg.m_MessageType, bytes.ReadBytes(re_len)); return msg; }
public override void OnReceiveMsg(NetWorkMessage message) { if (message.m_MessageType != null) { lock (s_messageList) { s_messageList.Add(message); } msgCount++; } else { Debug.LogError("ReceviceMeaasge m_MessageType is null !"); } }
//解包 private void ReceiveDataLoad(byte[] bytes) { try { ByteArray ba = HeapObjectPoolTool <ByteArray> .GetHeapObject(); //用于做数据处理,加解密,或者压缩于解压缩 ba.clear(); ba.Add(bytes); NetWorkMessage msg = Analysis(ba); m_messageCallBack(msg); } catch (Exception e) { Debug.LogError(e.ToString()); } }
void ReceviceMeaasge(NetWorkMessage message) { if (message.m_MessageType != null) { foreach (var item in plugins.Values) { try { item.OnReceiveMsg(message); } catch (Exception e) { Debug.LogError(item.GetType() + ".OnReceiveMsg \n" + e); } } } else { Debug.LogError("ReceviceMeaasge m_MessageType is null !"); } }
public override void OnReceiveMsg(NetWorkMessage message) { statistics.PacketsReceived++; }
static void ReceviceMeaasge(NetWorkMessage message) { s_messageList.Add(message); }
protected NetWorkMessage GetMessageByPool() { NetWorkMessage result = HeapObjectPool <NetWorkMessage> .GetObject(); return(result); }
public virtual void OnReceiveMsg(NetWorkMessage message) { }