void NetMgr::event_onSessionPulse(TcpSessionPtr session) { if (isSessionID(session->getSessionID())) { if (time(NULL) - session->getUserParamNumber(UPARAM_LAST_ACTIVE_TIME) > session->getOptions()._sessionPulseInterval / 1000 * 2) { session->close(); return; } Heartbeat hb; hb.timeStamp = (ui32)time(NULL); hb.timeTick = (unsigned int)getNowTick(); sendMessage(session, hb); } }
void NetManager::event_onSessionPulse(TcpSessionPtr session, unsigned int pulseInterval) { if (isSessionID(session->getSessionID())) { if (session->getUserLParam() == SS_LOGINED || time(NULL) - session->getUserRParam() > pulseInterval * 2) { session->close(); return; } WriteStream ws(ID_Heartbeat); Heartbeat hb; hb.timeStamp = (ui32)time(NULL); hb.timeTick = getNowTick(); ws << hb; session->doSend(ws.getStream(), ws.getStreamLen()); } }