/// <summary> /// 连接服务器并按标题订阅内容 /// </summary> /// <param name="e"></param> /// <returns></returns> private static async Task Connected(MqttClientConnectedEventArgs e) { try { List <TopicFilter> listTopic = new List <TopicFilter>(); if (listTopic.Count() <= 0) { var topicFilterBulder = new TopicFilterBuilder().WithTopic(Topic).Build(); listTopic.Add(topicFilterBulder); Console.WriteLine("Connected >>Subscribe " + Topic); } await mqttClient.SubscribeAsync(listTopic.ToArray()); Console.WriteLine("Connected >>Subscribe Success"); } catch (Exception exp) { Console.WriteLine(exp.Message); } }
private void BtnSubscribe_Click(object sender, RoutedEventArgs e) { string topic = txtSubTopic.Text.Trim(); if (string.IsNullOrEmpty(topic)) { MessageBox.Show("订阅主题不能为空!"); return; } if (!mqttClient.IsConnected) { MessageBox.Show("MQTT客户端尚未连接!"); return; } mqttClient.SubscribeAsync(new List <TopicFilter> { new TopicFilter(topic, MqttQualityOfServiceLevel.AtMostOnce) }); txtReceiveMessage.AppendText($"已订阅[{topic}]主题" + Environment.NewLine); txtSubTopic.IsEnabled = false; btnSubscribe.IsEnabled = false; }