From b97887b9fbcfcef6e61dbeb9c4a417405310d1ff Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 13 Dec 2017 14:14:23 +0100 Subject: [PATCH] fix websocket disconnections --- libguh-core/jsonrpc/jsonrpcserver.cpp | 1 + libguh-core/websocketserver.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libguh-core/jsonrpc/jsonrpcserver.cpp b/libguh-core/jsonrpc/jsonrpcserver.cpp index 5cea0ec3..25060cbd 100644 --- a/libguh-core/jsonrpc/jsonrpcserver.cpp +++ b/libguh-core/jsonrpc/jsonrpcserver.cpp @@ -672,6 +672,7 @@ void JsonRPCServer::clientConnected(const QUuid &clientId) void JsonRPCServer::clientDisconnected(const QUuid &clientId) { + qCDebug(dcJsonRpc()) << "Client disconnected:" << clientId; m_clientTransports.remove(clientId); m_clientNotifications.remove(clientId); if (m_pushButtonTransactions.values().contains(clientId)) { diff --git a/libguh-core/websocketserver.cpp b/libguh-core/websocketserver.cpp index cdf5c4ce..13159c9d 100644 --- a/libguh-core/websocketserver.cpp +++ b/libguh-core/websocketserver.cpp @@ -126,7 +126,6 @@ void WebSocketServer::onClientConnected() { // got a new client connected QWebSocket *client = m_server->nextPendingConnection(); - qCDebug(dcConnection) << "Websocket server: new client connected:" << client->peerAddress().toString(); // check websocket version if (client->version() != QWebSocketProtocol::Version13) { @@ -138,6 +137,8 @@ void WebSocketServer::onClientConnected() QUuid clientId = QUuid::createUuid(); + qCDebug(dcConnection) << "Websocket server: new client connected:" << client->peerAddress().toString() << clientId; + // append the new client to the client list m_clientList.insert(clientId, client); @@ -153,9 +154,10 @@ void WebSocketServer::onClientConnected() void WebSocketServer::onClientDisconnected() { QWebSocket *client = qobject_cast(sender()); - qCDebug(dcConnection) << "Websocket server: client disconnected:" << client->peerAddress().toString(); QUuid clientId = m_clientList.key(client); + qCDebug(dcConnection) << "Websocket server: client disconnected:" << client->peerAddress().toString() << clientId; m_clientList.take(clientId)->deleteLater(); + emit clientDisconnected(clientId); } void WebSocketServer::onBinaryMessageReceived(const QByteArray &data)