Showing the changes to libraries/script-engine/src/WebSocketServerClass.cpp (1 of 3 files). Show all
Unified · Split
| @@ -40,9 +40,7 @@ QScriptValue WebSocketServerClass::constructor(QScriptContext* context, QScriptE · 39 unmodified lines | ||
| 40 | 40 | serverName = serverNameOption.toString(); |
| 41 | 41 | } |
| 42 | 42 | } |
| 43 | − auto webSocketServerClass = new WebSocketServerClass(engine, serverName, port); | |
| 44 | − connect(static_cast<ScriptEngine*>(engine), &ScriptEngine::finished, webSocketServerClass, &QObject::deleteLater); | |
| 45 | − return engine->newQObject(webSocketServerClass); | |
| 43 | + return engine->newQObject(new WebSocketServerClass(engine, serverName, port), QScriptEngine::ScriptOwnership); | |
| 46 | 44 | } |
| 47 | 45 | |
| 48 | 46 | WebSocketServerClass::~WebSocketServerClass() { |
| @@ -55,6 +53,9 @@ WebSocketServerClass::~WebSocketServerClass() { · 6 unmodified lines | ||
| 55 | 53 | void WebSocketServerClass::onNewConnection() { |
| 56 | 54 | WebSocketClass* newClient = new WebSocketClass(_engine, _webSocketServer.nextPendingConnection()); |
| 57 | 55 | _clients << newClient; |
| 56 | + connect(newClient->getWebSocket(), &QWebSocket::disconnected, [newClient, this]() { | |
| 57 | + _clients.removeOne(newClient); | |
| 58 | + }); | |
| 58 | 59 | emit newConnection(newClient); |
| 59 | 60 | } |
| 60 | 61 | |