Ok, thanks for the reply. It pointed me in the correct direction and after many failures I finally figured it out.
I guess you only learn when you need to dig deep.
The only thing I had to do was install the correct version of openSSL. Since it is my first time I had no idea what the letter actually meant, I picked the first build, which was version g, I had to install version n.
For all future wanderers, the only thing you need to do to make the client work is one of the two options:
Just copy ssleay32.dll and libeay32.dll to working directory OR
Install the latest version and set PATH to the folder where the two dlls are located.
After that you can use QWebSocket without even knowing SSL exists. Just call:
From my investigation it appears that the QWebSocketServer works properly only when communicating with the main thread.
Therefore, any messages sent by other threads will not be received at the other side and the socket server will be corrupted from that moment.
In order to fix this issue I actually forced any other thread in my application to send their messages using the main thread.
I did it by using QMetaObject::invokeMethod() with Qt:QueuedConnection as the connection type.