我在linux centos 6.6上运行龙卷风webserver的安全websocket连接。我使用Qt/c++客户端通过打开一个类似"wss://191.23.4.56/etr/job"的url使用QWebsocket连接。我得到的错误是,"此平台不支持SSL套接字"这个错误是关于什么的?
当URL方案为wss
, QSslSocket::supportsSsl()
返回false
时,QWebSocket::open()
打印错误信息"SSL sockets are not supported in this platform"。
QSslSocket::supportsSsl()
:
如果平台支持SSL则返回true;否则,返回false。如果平台不支持SSL,则套接字将在连接阶段。
这是你的主要问题。现在我们需要找出为什么Qt
认为平台不支持SSL。
如果你下载Qt作为二进制包,函数supportsSsl()
尝试动态加载所需的库libssl
和libcrypto
。
如果这些库不能被加载,函数supportsSsl()
返回false
。
libssl
可能没有安装在您的系统中。如果你能在你的系统中找到二进制库,但它们没有被Qt加载,那么你的二进制libssl
和/或libcrypto
可能与二进制Qt不兼容。
为了避免这样的问题,你可以构建你自己的Qt,例如,有一个新的指令如何构建Qt-5.5.1。注意-openssl-linked
配置开关的技巧。它支持将OpenSSL库集成到Qt5库中,而不是在运行时动态加载它们。