我在linux centos 6.6上运行龙卷风webserver以获得安全的websocket连接。我正在使用Qt / c ++客户端通过打开像“wss://191.23.4.56/etr/job”这样的URL来使用QWebsocket进行连接。 我得到的错误就像, “此平台不支持SSL套接字” 这个错误是什么?
答案 0 :(得分:5)
错误消息"此平台不支持SSL套接字" 由网址QWebSocket::open()
和{{1}时由wss
打印}}返回QSslSocket::supportsSsl()
。
静态成员函数QSslSocket::supportsSsl()
:
如果此平台支持SSL,则返回true;否则,返回false。 如果平台不支持SSL,则套接字将失败 连接阶段。
这是你的主要问题。现在我们需要找出false
认为平台不支持SSL的原因。
如果您将Qt作为二进制包下载,则函数Qt
会尝试动态加载所需的库supportsSsl()
和libssl
。
如果无法加载这些库,则函数libcrypto
将返回supportsSsl()
。
您的系统中可能未安装false
。如果您可以在系统中找到库二进制文件,但Qt未加载它们,那么您的二进制文件libssl
和/或libssl
可能与二进制Qt不兼容。
为避免此类问题,您可以构建自己的Qt。例如,有一条新的指令如何构建Qt-5.5.1。请注意libcrypto
配置开关的技巧。它支持将OpenSSL库集成到Qt5库中,而不是在运行时动态加载它们。