我无法使用此处列出的任何QWebSockets客户端示例: http://qt-project.org/doc/qt-5/qtwebsockets-examples.html 应用程序尝试打开localhost url,套接字卡在QAbstractSocket :: ConnectingState和
中qDebug()<< m_webSocket.error();
返回QAbstractSocket :: UnknownSocketError。当然'连接'信号永远不会发出。 我在osx狮子中有qt 5.3。我有OpenSSL 1.0.1i和
QSslSocket :: supportsSsl();
返回true。
我真的没有想法,所以如果你有任何生病,请非常感激。
提前谢谢。答案 0 :(得分:2)
首先,在这种情况下,我认为ssl不是问题。
我刚刚运行了这些示例,它运行正常。这意味着可能存在以下常见问题之一(或者可能存在其他我不知道的问题)。
EchoClient client(QUrl(QStringLiteral("ws://localhost:1234")));
并将1234
替换为8888
或9001
等数字可以解决问题。请注意,在这种情况下,您必须在客户端和服务器程序中更改端口。 (如果你不明白我在说什么,请阅读下一点以完全理解。)在相应的服务器程序运行时运行客户端程序。例如,当您运行echoclient
时,您应该保持echoserver
运行。如果您在Windows或Linux中,可以通过打开两个Qt Creator进程并先运行echoserver
然后再运行echoclient
来执行此操作。如果你在Mac,你不能创建两个Qt Creator实例(至少在Yosemite,我不知道osx lion)。您必须运行echoserver
(并且不要关闭控制台),然后打开echoclient
项目并将echoclient设置为Active Project并运行。
(虽然不太可能)如果您要打开一个项目,从网站复制cpp文件并将其粘贴到项目中然后进行编译(而不是从您的示例选项卡中下载它) Qt Creator),那么你可能会丢失.pro文件的配置。只需在项目的websockets
文件中添加QT += core
.pro
。
如果不是这些情况,那么您可以告诉我,在这种情况下您也可以尝试在Qt forum发帖。