summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/websockets/qwebsocket_p.cpp4
-rw-r--r--src/websockets/qwebsocket_wasm_p.cpp7
2 files changed, 7 insertions, 4 deletions
diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp
index 5ee1b45..dfb06ee 100644
--- a/src/websockets/qwebsocket_p.cpp
+++ b/src/websockets/qwebsocket_p.cpp
@@ -178,6 +178,10 @@ void QWebSocketPrivate::init()
*/
QWebSocketPrivate::~QWebSocketPrivate()
{
+#ifdef Q_OS_WASM
+ if (m_socketContext)
+ emscripten_websocket_delete(m_socketContext);
+#endif
}
/*!
diff --git a/src/websockets/qwebsocket_wasm_p.cpp b/src/websockets/qwebsocket_wasm_p.cpp
index 4255203..31ea6a5 100644
--- a/src/websockets/qwebsocket_wasm_p.cpp
+++ b/src/websockets/qwebsocket_wasm_p.cpp
@@ -111,14 +111,14 @@ void QWebSocketPrivate::close(QWebSocketProtocol::CloseCode closeCode, QString r
Q_EMIT q->aboutToClose();
setSocketState(QAbstractSocket::ClosingState);
-
emscripten_websocket_get_ready_state(m_socketContext, &m_readyState);
if (m_readyState == 1) {
emscripten_websocket_close(m_socketContext, (int)closeCode, reason.toUtf8());
}
+ setSocketState(QAbstractSocket::UnconnectedState);
+ emit q->disconnected();
emscripten_websocket_get_ready_state(m_socketContext, &m_readyState);
-
}
void QWebSocketPrivate::open(const QNetworkRequest &request,
@@ -242,8 +242,7 @@ void QWebSocketPrivate::setSocketClosed(const EmscriptenWebSocketCloseEvent *emC
m_errorString = QStringLiteral("The remote host closed the connection");
emit q->error(error());
}
- setSocketState(QAbstractSocket::UnconnectedState);
- emit q->disconnected();
+
emscripten_websocket_get_ready_state(m_socketContext, &m_readyState);
if (m_readyState == 3) { // closed