如何正确断开从 QNetworkreply 读取的信号就绪

问题描述

以下问题与我的代码有关。出于不可理解的原因,我连接到一个事件流,该事件流每分钟在以下网址下发布设备的实际状态:“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() 之后我一直看到

disconnect 

在我的日志中

如何正确断开信号连接???

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)