WIN QAbstractSocket :: UnsupportedSocketOperationError并将Qt EchoClient连接到https://www.websocket.org/echo.html

问题描述 投票:0回答:1

我以Qt存储库中的EchoClient为例:

https://code.qt.io/cgit/qt/qtwebsockets.git/tree/examples/websockets/echoclient?h=5.14&id=66ea748c2ba1fa35c78c5d55742a982976b07435

我只做了一个修改,我更改了我想连接的URL地址:

EchoClient client(QUrl("wss://echo.websocket.org"), true);

并且不起作用,预期结果是将触发onConnected回调,请看下面的代码。

我添加了错误回调:

EchoClient::EchoClient(const QUrl &url, bool debug, QObject *parent) :
    QObject(parent),
    m_url(url),
    m_debug(debug)
{
    m_webSocket = new QWebSocket;
    if (m_debug)
        qDebug() << "WebSocket server:" << url;
    connect(m_webSocket, &QWebSocket::connected, this, &EchoClient::onConnected);
    connect(m_webSocket, &QWebSocket::disconnected, this, &EchoClient::closed);
    connect(m_webSocket, QOverload<QAbstractSocket::SocketError>::of(&QWebSocket::error),
        [=](QAbstractSocket::SocketError error)
    {
        qDebug() << "error: " << error;
    });
    QNetworkRequest request=QNetworkRequest(QUrl(url));
    m_webSocket->open(request);
}

而且我看到的是Qt总是返回

QAbstractSocket::UnsupportedSocketOperationError (10) QAbstractSocket::SocketError

我做错了什么?此错误的原因是什么?

c++ windows qt websocket
1个回答
0
投票

它要求在系统上安装OpenSSL。尽管Qt安装程序将一些Open SSL库放到Qt \ Tools文件夹中,但这不足以使其正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.