History

- remove webSockets from List after disconnect. - leave it up to the QtScript to delete the WebSocket / WebSocketServer objects

Thijs Wenker committed 11 years ago

Commit 9edba451 parent f5122053 files · +8 −7Browse files

Showing the changes to libraries/script-engine/src/WebSocketServerClass.cpp (1 of 3 files). Show all

Unified · Split

libraries/script-engine/src/WebSocketServerClass.cpp+4−3
@@ -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
48WebSocketServerClass::~WebSocketServerClass() {46WebSocketServerClass::~WebSocketServerClass() {
@@ -55,6 +53,9 @@ WebSocketServerClass::~WebSocketServerClass() { · 6 unmodified lines
55void WebSocketServerClass::onNewConnection() {53void 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