Important: Please read the Qt Code of Conduct -

Client timeout leads to unresponsive Qt SSL Websocket server

  • Hello,

    I discovered the following behaviour with the Qt SSL Websocket Server. The following example should be fully reproducible. I used OpenSSL to generate a self signed certificate. The problem only occurs with Google Chrome, because e.g. in IE I don't get the timeout message on the client after that time.

    .) Set up the official SSL Echo Server Example:

    .) Replace the following SLOT method:

    #include <QThread>
    void SslEchoServer::processTextMessage(QString message)
        QWebSocket *pClient = qobject_cast<QWebSocket *>(sender());
        if (pClient)
            qDebug() << "Received";
            qDebug() << message;
            qDebug() << "Sleeping...";
            qDebug() << "Wake up...";

    .) Set up the following websocket client html page:

    .) Open this html site twice in your Google Chrome browser

    .) First Tab:

    Connect to the websocket server and send a "test" - message

    .) Move quickly to the second Tab and connect to the same websocket server, click "State"

    .) You should see the "Connecting"-state, which is okay, because the thread is in sleep-mode for 90 seconds
    After 30s Google Chrome returns a timeout error:

    ERROR: undefined

    After the thread wakes up in my case the websocket server is not responsive anymore, I can't establish a connection with any browser or client, so that I have to restart the entire application.

    Is this a bug or is there any setting to fix that issue?

Log in to reply