websocket: cleanup before quit

This commit is contained in:
tobtoht 2024-10-01 16:36:47 +02:00
parent c31b351b17
commit a1836a64b2
No known key found for this signature in database
GPG key ID: E45B10DD027D2472
3 changed files with 11 additions and 2 deletions

View file

@ -12,6 +12,8 @@ WebsocketClient::WebsocketClient(QObject *parent)
: QObject(parent)
, webSocket(new QWebSocket(QString(), QWebSocketProtocol::VersionLatest, this))
{
connect(qApp, &QCoreApplication::aboutToQuit, this, &WebsocketClient::stop);
connect(webSocket, &QWebSocket::stateChanged, this, &WebsocketClient::onStateChanged);
connect(webSocket, &QWebSocket::connected, this, &WebsocketClient::onConnected);
connect(webSocket, &QWebSocket::disconnected, this, &WebsocketClient::onDisconnected);
@ -26,7 +28,6 @@ WebsocketClient::WebsocketClient(QObject *parent)
}
});
m_pingTimer.setInterval(30 * 1000);
m_pingTimer.start();
connect(&m_connectionTimeout, &QTimer::timeout, this, &WebsocketClient::onConnectionTimeout);
@ -67,9 +68,11 @@ void WebsocketClient::restart() {
}
void WebsocketClient::stop() {
qDebug() << Q_FUNC_INFO;
m_stopped = true;
webSocket->close();
m_connectionTimeout.stop();
m_pingTimer.stop();
}
void WebsocketClient::onConnected() {
@ -89,6 +92,7 @@ void WebsocketClient::onStateChanged(QAbstractSocket::SocketState state) {
}
else if (state == QAbstractSocket::ConnectedState) {
m_connectionTimeout.stop();
m_pingTimer.start();
}
}

View file

@ -116,4 +116,8 @@ WebsocketNotifier* WebsocketNotifier::instance()
}
return m_instance;
}
}
WebsocketNotifier::~WebsocketNotifier() {
qDebug() << "~WebsocketNotifier" << QThread::currentThreadId();
}

View file

@ -18,6 +18,7 @@ class WebsocketNotifier : public QObject {
public:
explicit WebsocketNotifier(QObject *parent);
~WebsocketNotifier();
QMap<NetworkType::Type, int> heights;
WebsocketClient *websocketClient;