#pragma once #include "logger.h" #include #include #include #include namespace LtsWebSocket { class MessageHandler; class ClientConnection; class ReplyMessage; class ConnectionHandler : public QObject { Q_OBJECT public: explicit ConnectionHandler(QObject* parent = nullptr); ~ConnectionHandler(); bool init(const QString& serviceName, unsigned short port); void sendToAllClients(ReplyMessage* message); unsigned short webSocketPort() { return m_server->serverPort(); } signals: void newTextMessageFromClient(ClientConnection* client, const QString& message); void clientDisconnected(ClientConnection* client); void clientConnected(ClientConnection* client); private slots: void onServerError(QWebSocketProtocol::CloseCode closeCode); void onNewConnection(); private: NGL::INGLLogger& m_logger; QWebSocketServer* m_server; QSet m_connections; }; } // namespace LtsWebSocket