diff options
-rw-r--r-- | src/plugins/platforms/webgl/qwebglwebsocketserver.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp b/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp index 959287d..ed7a4d6 100644 --- a/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp +++ b/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp @@ -107,8 +107,20 @@ QVariant QWebGLWebSocketServer::queryValue(int id) void QWebGLWebSocketServer::create() { Q_D(QWebGLWebSocketServer); - d->server = new QWebSocketServer(QLatin1String("qtwebgl"), QWebSocketServer::NonSecureMode); - if (d->server->listen(QHostAddress::Any)) { + const QString serverName = QLatin1String("qtwebgl"); + const QUrl url(QString::fromUtf8(qgetenv("QT_WEBGL_WEBSOCKETSERVER"))); + QHostAddress hostAddress(url.host()); + if (!url.isValid() || url.isEmpty() || !(url.scheme() == "ws" || url.scheme() == "wss")) { + d->server = new QWebSocketServer(serverName, QWebSocketServer::NonSecureMode); + hostAddress = QHostAddress::Any; + } else { + d->server = new QWebSocketServer(serverName, +#if QT_CONFIG(ssl) + url.scheme() == "wss" ? QWebSocketServer::SecureMode : +#endif + QWebSocketServer::NonSecureMode); + } + if (d->server->listen(hostAddress, url.port(0))) { connect(d->server, &QWebSocketServer::newConnection, this, &QWebGLWebSocketServer::onNewConnection); } else { |