refactor:调整websocket重连逻辑

This commit is contained in:
duanshengchao 2026-01-29 20:19:00 +08:00
parent 5814b2babe
commit a3ddfb95b9
3 changed files with 14 additions and 7 deletions

View File

@ -1,7 +1,7 @@
[RealtimeData] [RealtimeData]
host=192.168.46.100 host=192.168.46.100
port=10080 port=10080
httpPath=monitors/data/subscriptions httpPath=/monitors/data/subscriptions
websocketPath=monitors/data/realtime/stream websocketPath=monitors/data/realtime/stream
[HistoricalData] [HistoricalData]

View File

@ -73,7 +73,10 @@ void MeasurementDataManager::buildSubscriptionRequest(const QString& action, con
url.setPort(m_serviceConfig.realtimeCfg.port); url.setPort(m_serviceConfig.realtimeCfg.port);
url.setPath(m_serviceConfig.realtimeCfg.httpPath); url.setPath(m_serviceConfig.realtimeCfg.httpPath);
if(!url.isValid()) if(!url.isValid())
{
LOG_ERROR("Http-MeasurementData", QString("url:'%1' is not valid"));
return ; return ;
}
//创建网络请求 //创建网络请求
QNetworkRequest request(url); QNetworkRequest request(url);
@ -296,11 +299,12 @@ void MeasurementDataManager::getSubscriptionRealtimeData()
, m_serviceConfig.realtimeCfg.websocketPath , m_serviceConfig.realtimeCfg.websocketPath
, m_clientID); , m_clientID);
QUrl url(strUrl); QUrl url(strUrl);
if(!m_webSocketClient->connectToServer(url)) m_webSocketClient->connectToServer(url);
{ // if(!m_webSocketClient->connectToServer(url))
QString errorMsg = QString("Connect to WebSocketServer failed"); // {
LOG_ERROR("WebSocket-MeasurementData", errorMsg); // QString errorMsg = QString("Connect to WebSocketServer failed");
} // LOG_ERROR("WebSocket-MeasurementData", errorMsg);
// }
} }
void MeasurementDataManager::requestData(const QStringList& measurements, QObject* requester) void MeasurementDataManager::requestData(const QStringList& measurements, QObject* requester)

View File

@ -153,7 +153,8 @@ void WebSocketClient::cleanupWebSocket()
void WebSocketClient::scheduleReconnect() void WebSocketClient::scheduleReconnect()
{ {
if(m_connectionStatus == ConnectionStatus::Disconnected || m_connectionStatus == ConnectionStatus::Error) if(m_connectionStatus == ConnectionStatus::Connected || m_connectionStatus == ConnectionStatus::Connecting
|| m_connectionStatus == ConnectionStatus::Reconncting)
return; return;
if(m_reconnectAttempts < m_maxReconnectAttempts) if(m_reconnectAttempts < m_maxReconnectAttempts)
@ -195,6 +196,8 @@ void WebSocketClient::onDisconnected()
void WebSocketClient::onError(QAbstractSocket::SocketError error) void WebSocketClient::onError(QAbstractSocket::SocketError error)
{ {
m_connected = false;
m_connectionStatus = ConnectionStatus::Error;
QString errorMsg = m_webSocket ? m_webSocket->errorString() : "Unknown WebSocket error"; QString errorMsg = m_webSocket ? m_webSocket->errorString() : "Unknown WebSocket error";
LOG_ERROR("WebSocket", errorMsg); LOG_ERROR("WebSocket", errorMsg);
scheduleReconnect(); scheduleReconnect();