/** * Websocket interface for building control unit * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-01-30 */ #pragma once #include #include #include #include #include #include "../logger.h" namespace ExerciseEventManagement { class WebSocketHandler : public QObject { Q_OBJECT public: explicit WebSocketHandler(QObject *parent = nullptr); ~WebSocketHandler(); bool init(quint16 listenPort); bool isConnected() const { return !m_webSockets.isEmpty(); } bool sendTelegram(const QString &jsonStr); Q_SIGNALS: void webSocketConnected(QWebSocket *ws); private Q_SLOTS: void onNewConnection(); void onWebSocketDisconnected(); void onSendMessage(); private: QWebSocketServer *m_webSocketServer; QSet m_webSockets; QTimer *m_timer; LOGGER_T m_logger; }; } // namespace ExerciseEventManagement