C# MQTT(MQTTnet)客户端
MQTTnet 是一个高性能 .NET 库,用于基于 MQTT 的通信。 它提供了一个 MQTT Client和一个 MQTT Server(代理)。
安装MQTTnet
在Visual Studio中点击工具->NuGet 包管理器->管理解决方案的NuGet程序包
搜索MQTTnet安装到项目中
客户端有关的几个重要的类
MqttFactory
这个可以说是MQTTnet中最重要的一个类了,主要用来生成下面一些类用。
MqttClinet
代表Mqtt客户端类,由MqttFactory生成。
MqttClientOptions
用于配置Mqtt客户端参数(id,用户名密码等)。
MqttClientSubscribeOptions
用于配置Mqtt订阅参数,定和约的Topic,超时时间等。
MqttApplicationMessage
用于描述Mqtt消息。
客户端开发流程
构建MqttFactory
使用MqttFactory生成MqttClient
生成MqttOptions绑定到MqttClient
使用MqttClient类连接服务器
使用MqttFactory生成MqttClientSubscribeOptions绑定到MqttClient
构建MqttApplicationMessage向服务器推送消息
例程
MqttFactory myMqttFactory = new MqttFactory();try{ myMqttClient = myMqttFactory.CreateMqttClient() as MqttClient; options = new MqttClientOptionsBuilder().WithWebSocketServer("127.0.0.1:8083/mqtt") .WithCredentials("device", "123456") .WithClientId(Guid.NewGuid().ToString()) .Build(); options.KeepAlivePeriod = TimeSpan.FromSeconds(1); myMqttClient.ApplicationMessageReceivedAsync += e => { MessageBox.Show(e.ApplicationMessage.Topic); MessageBox.Show(Encoding.UTF8.GetString(e.ApplicationMessage.Payload)); return Task.CompletedTask; }; await myMqttClient.ConnectAsync(options, CancellationToken.None); mySubscription = myMqttFactory.CreateSubscribeOptionsBuilder() .WithTopicFilter( f => { f.WithTopic("mqttnet/topic/message"); var publish = new MqttApplicationMessageBuilder().Build(); }) .Build(); await myMqttClient.SubscribeAsync(mySubscription, CancellationToken.None); }catch (Exception ex){ MessageBox.Show(ex.Message);}
完整代码参考我的GithubMqttClientDemo
来源地址:https://blog.csdn.net/qq_15144867/article/details/127968892
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341