fix websocket disconnections

This commit is contained in:
Michael Zanetti 2017-12-13 14:14:23 +01:00
parent 99aa833ce8
commit b97887b9fb
2 changed files with 5 additions and 2 deletions

View File

@ -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)) {

View File

@ -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<QWebSocket *>(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)