我一直在尝试使用Qt websocket类设置websocket客户端。 不幸的是,我无法完成第一步:将我的客户端连接到服务器。
我确信连接是可行的,因为Go ws websocket client和C ++ easywsclient library都可以连接并与服务器连接。
我的代码的相关部分如下:
QWebSocket socket;
socket.open(QUrl("ws://localhost:9999"));
qDebug() << socket.error() << socket.errorString();
运行程序时,我收到以下(无用的)消息:
QAbstractSocket::UnknownSocketError "Unknown error"
有没有办法澄清错误和/或解决问题?
P.S。虽然easywsclient库可以连接并与服务器连接,但它只能做一个边缘工作,这就是我宁愿使用Qt类的原因。
答案 0 :(得分:1)
没有错误。 open()
是异步的。将connected()
,disconnected()
,error()
,textMessageReceived()
信号连接到QObject
派生对象的广告位。如果它是一个非常基本的应用程序,请使用一些lambdas:
QWebSocket socket;
QObject::connect(&socket, &QWebSocket::connected, [] { qDebug() << "connected"; });
QObject::connect(&socket, &QWebSocket::error, [](QAbstractSocket::SocketError error) { qDebug() << error; });
socket.open(QUrl("ws://localhost:9999"));