MQTTnet 3.1.2使用Demo
MQTT消息使用场景广泛,在本地做了个小demo。服务器使用的MQTTnet 3.1.2版本,最新4.1.0版本服务器权限认证网上没找到,所以就使用3.1.2版本了。
一、服务端
引用MQTTnet 3.1.2版本
View Code二、订阅消息
引用的MQTTnet最新4.1.0版本,新增MqttClientService类,实例化client。然后连接到服务端后订阅topic。
View Code
View Code三、发送消息
引用的MQTTnet最新4.1.0版本,新增MqttClientService类,实例化client。然后连接到服务端后向指定topic发送消息。
View Code
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

浙公网安备 33010602011771号