/// <summary> /// 网络频道轮询。 /// </summary> /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param> /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param> public void Update(float elapseSeconds, float realElapseSeconds) { if (m_Socket == null || !m_Active) { return; } ProcessSend(); m_ReceivePacketPool.Update(elapseSeconds, realElapseSeconds); if (m_HeartBeatInterval > 0f) { bool sendHeartBeat = false; int missHeartBeatCount = 0; lock (m_HeartBeatState) { m_HeartBeatState.HeartBeatElapseSeconds += realElapseSeconds; if (m_HeartBeatState.HeartBeatElapseSeconds >= m_HeartBeatInterval) { sendHeartBeat = true; missHeartBeatCount = m_HeartBeatState.MissHeartBeatCount; m_HeartBeatState.HeartBeatElapseSeconds = 0f; m_HeartBeatState.MissHeartBeatCount++; } } if (sendHeartBeat && m_NetworkChannelHelper.SendHeartBeat()) { if (missHeartBeatCount > 0 && NetworkChannelMissHeartBeat != null) { NetworkChannelMissHeartBeat(this, missHeartBeatCount); } } } }
public void Update() { if (m_Socket == null) { return; } if (m_HeartBeatInterval > 0) { lock (m_HeartBeatState) { } if (sendHeartBeat && m_NetworkChannelHelper.SendHeartBeat()) { if (miss) { NetworkChannelMissHeartBeat(this, missHeartBeatCount); } } } }