// CommunicationManager.h #pragma once #include "channelConfig.h" #include "httpChannel.h" #include "webSocketChannel.h" #include #include #include "export.hpp" class DIAGRAM_DESIGNER_PUBLIC CommunicationManager : public QObject { Q_OBJECT public: static CommunicationManager* instance(); // 初始化 bool initialize(); // HTTP通道操作 bool connectHttp(); bool disconnectHttp(); bool sendHttpRequest(const QString& path, const QByteArray& data = QByteArray(), const QString& method = "GET"); // WebSocket通道操作 bool connectWebSocket(); bool disconnectWebSocket(); bool sendWebSocketMessage(const QByteArray& data); bool sendWebSocketText(const QString& text); // 状态查询 bool isHttpConnected() const; bool isWebSocketConnected() const; ChannelConfig getHttpConfig() const; ChannelConfig getWebSocketConfig() const; // 配置更新 void updateHttpConfig(const ChannelConfig& config); void updateWebSocketConfig(const ChannelConfig& config); signals: // HTTP通道信号 void httpConnected(); void httpDisconnected(); void httpDataReceived(const QByteArray& data); void httpError(const QString& error); // WebSocket通道信号 void websocketConnected(); void websocketDisconnected(); void websocketDataReceived(const QByteArray& data); void websocketTextReceived(const QString& text); void websocketError(const QString& error); private: CommunicationManager(QObject* parent = nullptr); ~CommunicationManager(); // 内部初始化 void initHttpChannel(); void initWebSocketChannel(); // 配置 ChannelConfig m_httpConfig; ChannelConfig m_websocketConfig; // 通道实例 QSharedPointer m_httpChannel; QSharedPointer m_websocketChannel; };