我以Qt存储库中的EchoClient为例:
我只做了一个修改,我更改了我想连接的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
我做错了什么?此错误的原因是什么?
它要求在系统上安装OpenSSL。尽管Qt安装程序将一些Open SSL库放到Qt \ Tools文件夹中,但这不足以使其正常工作。