#pragma once #include "logger.h" #include "ltswebsocketserver_export.h" #include "reply_message.h" #include #include #include class QWebSocket; namespace LtsWebSocket { class LTSWEBSOCKETSERVER_EXPORT ClientConnection : public QThread, public ReplyHandler { Q_OBJECT public: explicit ClientConnection(QWebSocket* socket, QObject* parent = nullptr); ~ClientConnection(); bool init(); void addReply(ReplyMessage* message) override; QWebSocket* webSocket() { return m_socket; } signals: void newTextMessage(ClientConnection* client, const QString& message); void disconnected(ClientConnection* client); private slots: void onNewTextMessageFromSocket(const QString& message); void sendMessagesFromQueue(); void onSocketDisconnect(); private: NGL::INGLLogger& m_logger; void sendMessages(); QWebSocket* m_socket; QQueue m_messageQueue; }; } // namespace LtsWebSocket