MQTTnet 3.1.2使用Demo
MQTT消息使用场景广泛,在本地做了个小demo。服务器使用的MQTTnet 3.1.2版本,最新4.1.0版本服务器权限认证网上没找到,所以就使用3.1.2版本了。
一、服务端
引用MQTTnet 3.1.2版本

二、订阅消息
引用的MQTTnet最新4.1.0版本,新增MqttClientService类,实例化client。然后连接到服务端后订阅topic。


三、发送消息
引用的MQTTnet最新4.1.0版本,新增MqttClientService类,实例化client。然后连接到服务端后向指定topic发送消息。


using MQTTnet; using MQTTnet.Client; using MQTTnet.Protocol; using MQTTnet.Server; using System; using System.Text; using System.Threading.Tasks; namespace MQTTPublish { internal class Program { private static IMqttClient client; static void Main(string[] args) { Console.WriteLine("Hello World!"); client = new MqttClientService().MqttClientStart("127.0.0.1", 1883, "cyw", "123456", "cywcyw"); client.ConnectedAsync += Client_ConnectedAsync; Console.ReadLine(); } private static System.Threading.Tasks.Task Client_ConnectedAsync(MqttClientConnectedEventArgs arg) { Console.WriteLine("Client_ConnectedAsync"); var message = new MqttApplicationMessage { Topic = "test", Payload = Encoding.Default.GetBytes("cyw-123456"), QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce, Retain = true // 服务端是否保留消息。true为保留,如果有新的订阅者连接,就会立马收到该消息。 }; Console.WriteLine("PublishAsync topic:"+ message.Topic+ " Payload:"+ Encoding.UTF8.GetString(message.Payload)); client.PublishAsync(message); return Task.CompletedTask; } } }
四、测试
依次启动服务端,订阅消息客户端和发送消息客户端。
demo地址
MQTTDemo.rar---------------我是有底线的--------------------
作者:社会主义接班人
出处:http://www.cnblogs.com/5ishare/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
作者:社会主义接班人
出处:http://www.cnblogs.com/5ishare/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
转 https://www.cnblogs.com/5ishare/p/16740199.html