diff --git a/src/imports/qmlwebsockets/qqmlwebsocket.cpp b/src/imports/qmlwebsockets/qqmlwebsocket.cpp index 07ef925..de54ad6 100644 --- a/src/imports/qmlwebsockets/qqmlwebsocket.cpp +++ b/src/imports/qmlwebsockets/qqmlwebsocket.cpp @@ -221,6 +221,10 @@ void QQmlWebSocket::onStateChanged(QAbstractSocket::SocketState state) case QAbstractSocket::UnconnectedState: { setStatus(Closed); + if (m_isActive) { + m_isActive = false; + Q_EMIT activeChanged(m_isActive); + } break; } case QAbstractSocket::ConnectedState: @@ -250,6 +254,9 @@ void QQmlWebSocket::setStatus(QQmlWebSocket::Status status) if (status != Error) { setErrorString(); } + if (status == QQmlWebSocket::Closed) { + close(); + } Q_EMIT statusChanged(m_status); } @@ -258,6 +265,9 @@ void QQmlWebSocket::setActive(bool active) if (m_isActive == active) { return; } + if (m_status == QQmlWebSocket::Connecting) { + return; + } m_isActive = active; Q_EMIT activeChanged(m_isActive); if (!m_componentCompleted) {