#pragma once #include #include #include QT_FORWARD_DECLARE_CLASS(QWebSocketServer) QT_FORWARD_DECLARE_CLASS(QWebSocket) class Websocket : public QObject { Q_OBJECT public: Websocket(uint16_t port, QObject *parent = nullptr); Websocket(uint16_t port, QString key_file, QString cert_file, QObject *parent = nullptr); ~Websocket(); void broadcast(QString message); void send(QWebSocket *conn, QString message); signals: void on_message(QWebSocket *conn, QString message); void closed(); private slots: void onNewConnection(); void processTextMessage(QString message); void processBinaryMessage(QByteArray message); void socketDisconnected(); private: QWebSocketServer *m_pWebSocketServer; QList m_clients; };