我正在从 Qt/c++ 客户端打开一个 url,例如,
m_webSocket = new QWebSocket();
m_webSocket->open("wss://192.123.1.44:8087");
我想捕获连接中的任何错误。我怎么做?
我已连接到信号 QWebSocket:error(QAbstractSocket::SocketError error)
,但即使我的服务器未运行,我也从未触发过它。
编辑: 我正在连接到错误信号,如下所示,
m_webSocket = new QWebSocket();
connect(m_webSocket, SIGNAL(error(QAbstractSocket::SocketError error)), this, SLOT(onWebSocketError(QAbstractSocket::SocketError error)));
m_webSocket->open(url);
这似乎不起作用。
最佳答案
如 documentation 中所述:
Note: Signal error is overloaded in this class. To connect to this signal by using the function pointer syntax, Qt provides a convenient helper for obtaining the function pointer as shown in this example:
connect(webSocket, QOverload<QAbstractSocket::SocketError>::of(&QWebSocket::error),
[=](QAbstractSocket::SocketError error){ /* ... */ });
当然,除了 lambda 函数,您还可以连接到一个普通函数,但是 QOverload
部分很重要。
关于c++ - 如何捕获 websocket 连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33017388/