问题描述
以下问题与我的代码有关。出于不可理解的原因,我连接到一个事件流,该事件流每分钟在以下网址下发布设备的实际状态:“urldevice”/event-stream。我将一个插槽连接到信号“readyread”并将断开连接。但我仍然在调用断开连接函数,我在连接的插槽中收到信息。
这是我的代码
qnetworkrequest request(_url + "events");
request.setRawHeader("Accept","text/event-stream");
request.setHeader(qnetworkrequest::UserAgentHeader,"Plugin");
if (_token != "") {
request.setRawHeader("accept","*/*");
QString token = "Bearer " + _token;
request.setRawHeader("Authorization",token.toUtf8());
}
request.setAttribute(qnetworkrequest::FollowRedirectsAttribute,true);
request.setAttribute(qnetworkrequest::CacheLoadControlAttribute,qnetworkrequest::AlwaysNetwork); // Events shouldn't be cached
_sseReply = _sseNetworkManager->get(request);
QObject::connect(_sseReply,&QNetworkReply::readyRead,this,&streamReceived);
void streamReceived() {
if (_sseReply->error() == QNetworkReply::NoError) {
qCDebug(m_logCategory) << "streamrecieved";
} else {
qCDebug(m_logCategory) << "disconnect";
}
}
void disconnect() {
if (_sseReply->isRunning()) {
_sseReply->abort();
_sseReply->close();
_sseNetworkManager->disconnect(_sseReply,&streamReceived);
_sseNetworkManager->disconnect();
_sseReply->disconnect();
qCDebug(m_logCategory) << "isrunnung";
}
_flagStandby = true;
QObject::disconnect(_sseReply,&streamReceived);
}
disconnect
在我的日志中
如何正确断开信号连接???
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)