Sto eseguendo webserver tornado per la connessione websocket sicura su Linux centos 6.6. Sto usando client Qt/C++ per connettermi usando QWebsocket aprendo un url come "wss: //191.23.4.56/etr/job". Ho ricevuto l'errore, "I socket SSL non sono supportati in questa piattaforma" Di cosa si tratta?ssl socket non supportato errore
risposta
Il messaggio di errore "socket SSL non sono supportati in questa piattaforma" viene stampato QWebSocket::open()
quando lo schema URL è wss
e QSslSocket::supportsSsl()
rendimenti false
.
La funzione di membro static QSslSocket::supportsSsl()
:
Restituisce vero se questa piattaforma supporta SSL; in caso contrario, restituisce false. Se la piattaforma non supporta SSL, il socket non funzionerà nella fase di connessione .
Questo è il tuo problema principale. Ora abbiamo bisogno di scoprire perché Qt
pensa che SSL non sia supportato dalla piattaforma.
Se si è scaricato Qt come pacchetto binario, la funzione supportsSsl()
tenta di caricare le librerie richieste libssl
e libcrypto
in modo dinamico.
Se tali librerie non possono essere caricate, la funzione supportsSsl()
restituisce false
.
È possibile che libssl
non sia installato nel sistema. Se riesci a trovare i file binari della libreria nel tuo sistema, ma non sono caricati da Qt, è possibile che il tuo binario libssl
e/o libcrypto
non siano compatibili con Qt binario.
Per evitare tali problemi è possibile creare il proprio Qt. Ad esempio, c'è una nuova istruzione su come costruire Qt-5.5.1. Nota il trucco con lo switch di configurazione -openssl-linked
. Consente l'integrazione di librerie OpenSSL in librerie Qt5 invece di caricarle dinamicamente in fase di runtime.
Qualcuno ha ricevuto un errore simile? Il mio client Qt è in esecuzione su Windos 7. – gaj