MQTTNet 客户端
MQTTNet版本:4.3.7.1207
static async Task Main(string[] args) { //创建MQTT实例 var mqttClient = new MqttFactory().CreateMqttClient(); //创建连接设置和Build var options = new MqttClientOptionsBuilder() .WithTcpServer("localhost",1885) .WithCredentials("admin","admin123") .WithClientId(Guid.NewGuid().ToString()) .Build(); //连接 var result = await mqttClient.ConnectAsync(options); //推送主题 var messageBuilder = new MqttApplicationMessageBuilder() .WithTopic("testtopic/1") .WithQualityOfServiceLevel(MQTTnet.Protocol.MqttQualityOfServiceLevel.AtLeastOnce) .WithRetainFlag(false); //订阅主题 var subTopic = new MqttTopicFilterBuilder() .WithTopic("testtopic/2") .Build(); //接收消息事件 mqttClient.ApplicationMessageReceivedAsync += MqttClient_ApplicationMessageReceivedAsync; if (mqttClient.IsConnected) { //订阅主题 var subResult = await mqttClient.SubscribeAsync(subTopic); if(subResult.Items.Count > 0) Console.WriteLine($"订阅成功:{subTopic.Topic}"); for (int i = 0; i < 10; i++) { //Build主题消息体 var message = messageBuilder.WithPayload($"当前第{i}条").Build(); //生产消息 await mqttClient.PublishAsync(message); await Task.Delay(100); } } Console.WriteLine("结束"); Console.ReadKey(); await mqttClient.DisconnectAsync(); } private static Task MqttClient_ApplicationMessageReceivedAsync(MqttApplicationMessageReceivedEventArgs msg) { string text = msg.ApplicationMessage.ConvertPayloadToString(); string topic = msg.ApplicationMessage.Topic; Console.WriteLine($"Topic:[{topic}];{Environment.NewLine}Payload:{Environment.NewLine}[{text}]{Environment.NewLine}"); return Task.CompletedTask;//直接return null会报错 }
浙公网安备 33010602011771号