#pragma once #include #include #include "reply_message.h" #include "logger.h" #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: void sendMessages(); private: QWebSocket *m_socket; QQueue m_messageQueue; LOGGER_T m_logger; }; }