Example #1
0
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);
    }
}
Example #2
0
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());
	}
}