#ifndef MEASUREMENTDATAUTILS_H #define MEASUREMENTDATAUTILS_H #include "networkCommon.h" #include #include /** * @brief WebSocket数据客户端 * * 负责与后台数据服务建立WebSocket连接,接收实时数据 */ class QTimer; class WebSocketClient : public QObject { Q_OBJECT public: explicit WebSocketClient(QObject* parent = nullptr); ~WebSocketClient(); //连接管理 bool connectToServer(const QUrl& url); void disconnectFromServer(); //bool isConnected(); //数据配置 void setReconnectInterval(int intervalMs); void setMaxReconnectAttempts(int maxAttempts); signals: void dataReceived(const QString& dataMsg); private slots: void onConnected(); void onDisconnected(); void onError(QAbstractSocket::SocketError error); void onTextMessageReceived(const QString& message); void onReconnectTimeout(); void resetReconnect(); private: void setupWebSocket(); void cleanupWebSocket(); void scheduleReconnect(); QWebSocket* m_webSocket; QUrl m_serverUrl; //重连相关 QTimer* m_reconnectTimer; int m_reconnectInterval; int m_reconnectAttempts; int m_maxReconnectAttempts; // 状态 bool m_connected; ConnectionStatus m_connectionStatus; }; #endif