#include "heartbeat.h" #include "wssso.h" #include "sncdatabase.h" #include "respssoheartbeat.h" #include HeartBeat::HeartBeat(QString userHash) { this->userHash = userHash; this->stop = false; QRegExp reg("\\d+"); QMap map = SNCDataBase::getSrvParam("sso"); if(reg.exactMatch(map.value("heartBeatTime"))) { cycle = map.value("heartBeatTime").toInt(); } else { cycle = 120; } } void HeartBeat::setUserHash(QString userHash) { this->userHash = userHash; } void HeartBeat::abort() { this->stop = true; } HeartBeat::~HeartBeat() { qDebug()<stop = false; while(!stop) { WSSSO client; QString json = client.heartBeat(this->userHash,"","",""); if(!json.isEmpty()){ RespSSOHeartBeat response(json); int rtCode = response.getRtnCode(); if(rtCode == 0) { break; } else if(rtCode == -1) { emit multiLogin(); break; } } //msleep(1000*60*5); QTime dieTime = QTime::currentTime().addMSecs(1000*cycle); QTime c; c.start(); while( QTime::currentTime() < dieTime ) { QCoreApplication::processEvents(QEventLoop::AllEvents, 100); msleep(500); if(stop) break; } //qDebug()<