WIN QAbstractSocket :: UnsupportedSocketOperationError при подключении Qt EchoClient к https://www.websocket.org/echo.html - PullRequest
0 голосов
/ 23 апреля 2020

Я беру пример EchoClient из репозитория Qt:

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

Что я делаю не так? В чем причина этой ошибки?

1 Ответ

0 голосов
/ 23 апреля 2020

Требуется, чтобы в системе был установлен OpenSSL. Несмотря на то, что установщик Qt помещает некоторые библиотеки Open SSL в папку Qt \ Tools, этого недостаточно для правильной работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...