首页 > 其他分享 >golang使用阿里MQTT的通信记录

golang使用阿里MQTT的通信记录

时间:2024-06-03 16:34:23浏览次数:13  
标签:订阅 golang MQTT 阿里 手机 服务器 链接

背景:我们有业务场景就是手机App可以操作物连网设备,一年之中总会有一两次,手机无法操作设备,于是我们就需要将服务器重新启动就正常了,使用的是阿里MQTT服务。

猜测:我一直怀疑,这个通信系统中的可能有BUG,消息丢失无法送达或者在传递过中发生了错乱无法正确收到消息。

分析:仔细研究发现是代码的BUG,初始化client有一个方法InitClient,订阅主题B有SubscribB。

1、当服务器启动后调用InitClient,此方法中有一个设置 {opts.CleanSession = true} ,再使用go关键字异步调用SubscribB。

2、这时手机是可以操作设备的。

3、当MQTT服务器断开链接,服务器的client也重新链接,手机就再也操作不了设备。

4、查找资料发现opts.CleanSession设置为true时,断开链接,订阅的主题都会被清空。

5、想要正确收到消息,重新链接后需要再订阅主题B。

以个人理解整理了一个简单流程图。

使用MQTT手机与设备通信

 

标签:订阅,golang,MQTT,阿里,手机,服务器,链接
From: https://www.cnblogs.com/adongdev/p/18229160

相关文章

  • golang使用geoip2获取ip归属地
    gogetgithub.com/oschwald/geoip2-golang下载GeoIP2-City.mmdbhttps://dev.maxmind.com/geoip/geolite2-free-geolocation-datamain.gopackagemainimport( "fmt" "log" "net" "github.com/oschwald/geoip2-golang")......
  • 泛微e9阿里云linux服务器部署迁移总结
    1.基础部分,linux基础命令打开指定目录:cd[目录名称]创建目录:mkdir[目录名称]查看目录大小:du-sh[目录名称]启动停止服务:进入目录:cd/weaver/resin4/bin/启动服务:./startresin.sh停止服务:./stopresin.sh编辑文件vim【文件......
  • [MQTT]服务器EMQX搭建SSL/TLS连接过程(wss://)
    目录......
  • 阿里云入选Gartner「边缘分发平台市场指南」代表厂商
    近日,全球技术研究与咨询机构Gartner首次发布边缘分发平台市场指南报告《MarketGuideforEdgeDistributionPlatforms》,阿里云凭借内容分发网络CDN、全站加速DCDN、边缘节点服务ENS等产品获得Gartner认可,成功入选边缘分发平台代表厂商。Gartner报告指出,“边缘分发平台(EDP)......
  • C#使用HttpClient上传文件至阿里云oss失败的解决方案。
    ThebodyofyourPOSTrequestisnotwell-formedmultipart/form-data在使用C#的HttpClient上传文件到阿里云oss的时候,根据postman生成的代码,但是用C#发起请求的时候会返回400错误以及错误信息>ThebodyofyourPOSTrequestisnotwell-formedmultipart/form-data主要因......
  • MQTT5.0
    文章目录一、MQTT5介绍1.1什么是MQTT1.2MQTT5历史1.3MQTT5设计目标1.4MQTT5应用场景二、为什么要用MQTT5为更健壮的系统更好地处理错误云原生计算的更多可扩展性更大的灵活性和更容易的集成三、MQTT5topic主题cleanSession使用场景概念QoSQos选择使用QoS0:​使......
  • 阿里妈妈->创意图片生成
    数智商业技术2.0时代的新「三驾马车」,阿里妈妈郑波谈如何把握生成式大模型ACM\x26#39;23中国图灵大会SIGAIChina论坛上,阿里妈妈及闲鱼CTO郑波分享关于数智商业技术的洞见。他认为在这轮生成式AI大模型的驱动下,数智商业技术将进入2.0时代,其中知识驱动、逻辑推理和创造......
  • golang中基于kevent的IO多路复用实践
    https://github.com/zongzw-learn/learn-go/tree/master/basics/tcp-pollerkqueue在golang语言下的使用实践将kqueue的操作细节封装在NetPoller接口中,实现KqueuePoller的三个API:Start启动基于kqueue的IO多路复用事件监听Close停止kqueueSetHandler设置可插入式的数据处理......
  • 阿里云开发者社区有奖征文活动,期待您出文相助
    和阿里云开发者社区的合作曾经是园子的收入来源之一,但现在合作机会越来越少了,今年好不容易等到一次合作机会,就是这次的有奖征文活动——「寻找热爱技术创作的你:写下你在技术探中的实践和思考」,详见活动公告这次征文合作分2期,第1期需要完成保底提交50篇符合要求的文章才能拿到收......
  • wpf 中阿里图标库的使用
    阿里图标库的使用阿里图标库iconfont1.进入阿里图标库主界面后,根据需要搜索自己要用的图标,然后加入到购物车中2.打开“资源管理-我的项目”,进入我的项目界面,然后点击"下载至本地",把资源文件下载到本地3.引用资源(通过编码"&#xefdc"和ttf字体文件实现效果)效果......