文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C# MQTT(MQTTnet)客户端

2023-08-22 21:21

关注

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯