技术专栏
mqtt断线重连注意事项
现在有不少项目的网络通讯都会使用到mqtt协议,MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,所以现在很多项目都会用到mqtt协议。
既然是网络上使用的通讯协议,那么断线重连就很重要,我自己做项目当中也遇到了这个问题,在mqttC++的开源库中,断线重连有一个官方提供的方式,就是在MQTTClient_connectOptions 这个结构体中的autoreconnect,只要把这个变量赋1,系统库就会自动帮你完成断线重连的工作,是非常方便的,但是呢,在很多海思的交叉编译工具当中是不支持到C++11的,这样就是使得mqttC++的官方开源库无法使用,只能用C的开源库,这个里面就不带断线重连的功能了,这样我们用户就只能自己实现这个功能。
这个里面会有一个坑,本身开源代码中会有
MQTTClient_setCallbacks(gMQTTClient, NULL, connlost, msgarrvd, delivered);
这个接口,这个里面的connlost就是断线之后的回调函数,这个里面需要我们自己添加代码,其实对于大部分程序员来说,断线了,我们做一个不断尝试重连的工作,直到连上了为止,这个思路并不难,但是mqtt不可以直接disconnect,然后尝试重连,这样会不断地占用socket,具体是什么原因造成的我也没有找到,应该是库里的代码造成的,这里需要直接MQTTClient_destroy掉整个对象,然后重新creat才可以,这里是个坑,需要注意。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
3
3
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:2096次2020-05-29 17:57:54
-
浏览量:3018次2021-06-01 09:51:47
-
浏览量:3649次2021-11-20 15:05:18
-
浏览量:2665次2020-08-27 19:30:09
-
浏览量:2207次2020-05-22 19:32:20
-
浏览量:6607次2021-05-07 17:21:24
-
浏览量:2556次2020-03-05 15:10:19
-
浏览量:2002次2020-03-25 19:37:35
-
浏览量:8724次2020-12-30 17:36:42
-
浏览量:6578次2021-09-07 16:20:24
-
浏览量:1476次2019-11-29 16:15:38
-
浏览量:2073次2019-11-13 08:51:50
-
浏览量:3374次2023-04-16 20:29:23
-
浏览量:1360次2019-12-10 15:13:25
-
浏览量:1362次2022-10-11 14:43:12
-
浏览量:1795次2019-12-12 16:26:11
-
浏览量:6226次2021-04-06 20:09:36
-
浏览量:15210次2021-07-29 17:28:08
-
浏览量:5758次2021-04-26 17:27:59
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
Tracy_9216
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注