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 | serverName = serverNameOption.toString(); | 40 | serverName = serverNameOption.toString(); |
| 41 | } | 41 | } |
| 42 | } | 42 | } |
| 43 | auto webSocketServerClass = new WebSocketServerClass(engine, serverName, port); | 43 | return engine->newQObject(new WebSocketServerClass(engine, serverName, port), QScriptEngine::ScriptOwnership); |
| 44 | connect(static_cast<ScriptEngine*>(engine), &ScriptEngine::finished, webSocketServerClass, &QObject::deleteLater); | ||
| 45 | return engine->newQObject(webSocketServerClass); | ||
| 46 | } | 44 | } |
| 47 | 45 | ||
| 48 | WebSocketServerClass::~WebSocketServerClass() { | 46 | WebSocketServerClass::~WebSocketServerClass() { |
| @@ -55,6 +53,9 @@ WebSocketServerClass::~WebSocketServerClass() { · 6 unmodified lines | |||
| 55 | void WebSocketServerClass::onNewConnection() { | 53 | void WebSocketServerClass::onNewConnection() { |
| 56 | WebSocketClass* newClient = new WebSocketClass(_engine, _webSocketServer.nextPendingConnection()); | 54 | WebSocketClass* newClient = new WebSocketClass(_engine, _webSocketServer.nextPendingConnection()); |
| 57 | _clients << newClient; | 55 | _clients << newClient; |
| 56 | connect(newClient->getWebSocket(), &QWebSocket::disconnected, [newClient, this]() { | ||
| 57 | _clients.removeOne(newClient); | ||
| 58 | }); | ||
| 58 | emit newConnection(newClient); | 59 | emit newConnection(newClient); |
| 59 | } | 60 | } |
| 60 | 61 | ||