diff --git a/RIZO_Application/Modules/RIZO_Application.Modules.ModuleName/ViewModels/MqttControlViewModel.cs b/RIZO_Application/Modules/RIZO_Application.Modules.ModuleName/ViewModels/MqttControlViewModel.cs index 50eaa47..ecde1f4 100644 --- a/RIZO_Application/Modules/RIZO_Application.Modules.ModuleName/ViewModels/MqttControlViewModel.cs +++ b/RIZO_Application/Modules/RIZO_Application.Modules.ModuleName/ViewModels/MqttControlViewModel.cs @@ -35,7 +35,7 @@ namespace RIZO_Application.Modules.ModuleName.ViewModels _eventAggregator.GetEvent().Publish($"Mqtt初始化……"); string serverUrl = GetMqttConfigValue(MqttConfigs.Current?.ServerUrl); - string clientId = GetMqttConfigValue(MqttConfigs.Current?.ClientId); + string clientId = GetMqttConfigValue(MqttConfigs.Current?.ClientId) + Guid.NewGuid().ToString("N"); _mqttHelper = new MqttHelper(serverUrl, 1883, clientId); _mqttHelper.MessageReceived += HandleMqttMessage; diff --git a/RIZO_Application/RIZO_Application.Infrastructure/Util/MqttHelper/MqttHelper.cs b/RIZO_Application/RIZO_Application.Infrastructure/Util/MqttHelper/MqttHelper.cs index 13c869e..c78e372 100644 --- a/RIZO_Application/RIZO_Application.Infrastructure/Util/MqttHelper/MqttHelper.cs +++ b/RIZO_Application/RIZO_Application.Infrastructure/Util/MqttHelper/MqttHelper.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; using System.Threading; using System.Threading.Tasks; using MQTTnet; @@ -36,7 +37,7 @@ namespace RIZO_Helper.Tools _mqttClient.DisconnectedAsync += async e => { - Console.WriteLine($"MQTT连接断开,原因: {e.Reason}"); + Debug.WriteLine($"MQTT连接断开,原因: {e.Reason}"); await ReconnectWithBackoffAsync(); }; @@ -63,22 +64,22 @@ namespace RIZO_Helper.Tools if (_mqttClient.IsConnected) return true; - Console.WriteLine($"正在连接MQTT服务器: {_options.ChannelOptions}"); + Debug.WriteLine($"正在连接MQTT服务器: {_options.ChannelOptions}"); try { await _mqttClient.ConnectAsync(_options, cancellationToken); - Console.WriteLine("MQTT连接成功"); + Debug.WriteLine("MQTT连接成功"); return true; } catch (OperationCanceledException) { - Console.WriteLine("MQTT连接操作被取消"); + Debug.WriteLine("MQTT连接操作被取消"); throw; } catch (Exception ex) { - Console.WriteLine($"MQTT连接失败: {ex.Message}"); + Debug.WriteLine($"MQTT连接失败: {ex.Message}"); ConnectionFailed?.Invoke(this, ex); return false; } @@ -105,12 +106,12 @@ namespace RIZO_Helper.Tools .Build(); await _mqttClient.SubscribeAsync(topicFilter); - Console.WriteLine($"成功订阅主题: {topic} (QoS: {qos})"); + Debug.WriteLine($"成功订阅主题: {topic} (QoS: {qos})"); return true; } catch (Exception ex) { - Console.WriteLine($"订阅主题失败: {topic}, 错误: {ex.Message}"); + Debug.WriteLine($"订阅主题失败: {topic}, 错误: {ex.Message}"); return false; } } @@ -136,12 +137,12 @@ namespace RIZO_Helper.Tools .Build(); await _mqttClient.PublishAsync(message); - Console.WriteLine($"成功发布消息到主题: {topic} (QoS: {qos}, 保留: {retain})"); + Debug.WriteLine($"成功发布消息到主题: {topic} (QoS: {qos}, 保留: {retain})"); return true; } catch (Exception ex) { - Console.WriteLine($"发布消息失败: {topic}, 错误: {ex.Message}"); + Debug.WriteLine($"发布消息失败: {topic}, 错误: {ex.Message}"); return false; } } @@ -157,12 +158,12 @@ namespace RIZO_Helper.Tools try { await _mqttClient.UnsubscribeAsync(topic); - Console.WriteLine($"成功取消订阅主题: {topic}"); + Debug.WriteLine($"成功取消订阅主题: {topic}"); return true; } catch (Exception ex) { - Console.WriteLine($"取消订阅失败: {topic}, 错误: {ex.Message}"); + Debug.WriteLine($"取消订阅失败: {topic}, 错误: {ex.Message}"); return false; } } @@ -178,11 +179,11 @@ namespace RIZO_Helper.Tools try { await _mqttClient.DisconnectAsync(); - Console.WriteLine("MQTT客户端已断开连接"); + Debug.WriteLine("MQTT客户端已断开连接"); } catch (Exception ex) { - Console.WriteLine($"断开MQTT连接时出错: {ex.Message}"); + Debug.WriteLine($"断开MQTT连接时出错: {ex.Message}"); } } @@ -198,7 +199,7 @@ namespace RIZO_Helper.Tools while (retries < maxRetries && !_isDisposed) { int delayMs = baseDelayMs * (int)Math.Pow(2, retries); - Console.WriteLine($"将在 {delayMs}ms 后尝试重新连接MQTT服务器 (尝试 {retries + 1}/{maxRetries})"); + Debug.WriteLine($"将在 {delayMs}ms 后尝试重新连接MQTT服务器 (尝试 {retries + 1}/{maxRetries})"); await Task.Delay(delayMs); if (await ConnectAsync()) @@ -207,7 +208,7 @@ namespace RIZO_Helper.Tools retries++; } - Console.WriteLine($"达到最大重试次数 ({maxRetries}),停止尝试重新连接MQTT服务器"); + Debug.WriteLine($"达到最大重试次数 ({maxRetries}),停止尝试重新连接MQTT服务器"); ConnectionFailed?.Invoke(this, new Exception("MQTT重新连接失败,达到最大重试次数")); } @@ -219,7 +220,7 @@ namespace RIZO_Helper.Tools if (_mqttClient.IsConnected) return true; - Console.WriteLine("检测到MQTT连接断开,尝试重新连接..."); + Debug.WriteLine("检测到MQTT连接断开,尝试重新连接..."); return await ConnectAsync(); } @@ -258,7 +259,7 @@ namespace RIZO_Helper.Tools } catch (Exception ex) { - Console.WriteLine($"释放MQTT资源时出错: {ex.Message}"); + Debug.WriteLine($"释放MQTT资源时出错: {ex.Message}"); } } }