/** * Websocket interface for building control unit * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-01-30 */ #pragma once #include #include "logger.h" #include "abstract_socket_handler.h" namespace GuezNasat { class WebSocketHandler : public AbstractSocketHandler { Q_OBJECT public: explicit WebSocketHandler(QObject *parent = nullptr); ~WebSocketHandler(); bool init(quint16 listenPort) override; bool isConnected() const override { return !m_webSockets.isEmpty(); } protected: bool sendTelegramInternal(const QByteArray &tele) override; private Q_SLOTS: void onNewConnection(); void onWebSocketDisconnected(); void onTextMessageReceived(const QString &msg); private: QWebSocketServer *m_webSocketServer; QSet m_webSockets; }; } // namespace GuezNasat