Skip to content

Web Socket for Qt5/6

Latest
Compare
Choose a tag to compare
@cculianu cculianu released this 02 Aug 09:22
298af82

A lightweight RFC 6455 (Web Socket) implementation for Qt5 & Qt6 by Calin Culianu calin.culianu@gmail.com

Key highlights

  • Supports both ws:// and wss:// Web Sockets.
  • Support both client-side and server-side mode of operation.
  • Easy to integrate: just copy WebSocket.h and WebSocket.cpp into your project
  • Easy to use with existing codebases:
    • Unlike the QWebSocket module from Qt, this code's main class, WebSocket::Wrapper inherits from QTcpSocket and thus can easily be integrated into existing code.
    • In other words, the key paradigm offered is basically a generic wrapper for a regular QTcpSocket that itself inherits from QTcpSocket.
  • Asynchronous mode of operation (requires an event loop in the thread the WebSocket::Wrapper lives in).
  • Requires C++17.

How to use in your project

  1. Copy WebSocket.h and WebSocket.cpp into your project.
  2. Enjoy! (The license here is MIT so you can use this in any project, commercial or open source).

What's new in v1.2.2

  • Updated the code to compile out of the box with Qt6.
    • All of the code code in WebSocket.cpp and WebSocket.h was Qt6-ready already, since it relied on low-level classes from Qt5 which are almost identical in Qt6
    • The only change: updating the test app: TestEchoClientServer.cpp to use QRegularExpression (present in Qt5 and Qt6), rather than the deprecated QRegExp