.Net Mqtt程序

本文介绍了在.NETCore中使用MQTT协议时遇到的问题,如无法发布主题,以及如何切换到HslCommunication库来解决。此外,还分享了在多线程环境下处理设备数据时遇到的并发访问集合导致的程序崩溃问题,通过使用Lock解决线程安全。提供了相关代码示例。

最近做物联网,客户的设备使用mqtt协议,所以研究了一下这个东西

说下遇到的问题,以及解决

前面在网络中总是搜索的都是.netCore的例子,然后发现一个问题,没解决,

使用MqttServer,没办法进行发布主题,然后就是这个.NetCore用的不多,是个控制台程序,不熟练,感觉控制不住,后面就又换了一个库。

后面找到一个强大的库,里面封装的物联网的东西挺多的,希望给大家一些帮助库名称:HslCommunication

大家可以去下载看看,这个里面什么websocket,mqtt等很多物联网的协议都封装了,又一种相恨见晚的感觉,以后就用这个开发,不是方便了很多,并且这个还是一个.NetFramework的库,用起来也是很方便。

后面的确是设备数据都接上来了,但是又有一个关于线程的问题,多个线程同时访问的问题,时不时就导致程序奔溃了,这个问题不是库的问题,是我自己写的问题,后面查找资料,终于也是解决了,这里记录一下,

程序中使用了多个线程进行访问一个公有的集合,导致程序出现问题,后面使用了锁(Lock)进行解决。话不多说,上代码吧

 //创建mqttSever
if (mqttServer == null)
   {

                mqttServer = new MqttServer();
                mqttServer.Port = port;

                mqttServer.OnClientApplicationMessageReceive += MqttServer_OnClientApplicationMessageReceive;
                mqttServer.OnClientConnected += MqttServer_OnClientConnected;
                mqttServer.OnClientDisConnected += MqttServer_OnClientDisConnected;
               

          
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值