public void update(float dt) { // 发送队列 while (m_sendQueue.Count > 0) { SFBaseRequestMessage req = m_sendQueue.Dequeue(); string data = JsonUtility.ToJson(req); m_client.sendData(data); if (req.pid != 0 && req.pid != 3) { SFUtils.log("Sending message[{0}]: {1}", data.Length, data); } } // 接收队列 while (m_recvQueue.Count > 0) { string data = m_recvQueue.Dequeue(); SFBaseResponseMessage obj = null; try { obj = JsonUtility.FromJson <SFBaseResponseMessage>(data); } catch { } if (obj != null) { handleProtocol(obj.pid, data); if (obj.pid != 0 && obj.pid != 3 && obj.pid != 4) { SFUtils.log("收到信息:协议号={0}\ndata={1}", obj.pid, data); } } else { SFUtils.logWarning("不能解析的信息格式:\n" + data); } } // 心跳包 m_heartbeatTimer += dt; if (m_heartbeatTimer > SFCommonConf.instance.heatbeatInterval) { m_heartbeatTimer -= SFCommonConf.instance.heatbeatInterval; sendHeartbeat(); } }
/// <summary> /// 往服务器发送信息 /// </summary> /// <param name="req">请求信息</param> public void sendMessage(SFBaseRequestMessage req) { m_sendQueue.Enqueue(req); }