前言:
之前的项目现场设备使用第三方的外网域名与阿里云服务器进行交互,发现这种方式只能临时使用,还要花费额外的费用,故需要一种无限制的前端设备与阿里云进行交互,笔者就找到了如今比较流行的物联网协议MQTT,一种长链接的tcp协议。
以下是此次项目的环境
阿里云:windows server 安装的mqtt服务器 是 emqx的程序
一。安装服务器
链接如下:下载 EMQX
使用开源版版本基本满足大多数项目需求
安装步骤详细请看官方文档
安装完毕后,需要进行注册的鉴权
使用的是账号密码的方式进行认证
服务端配置好,这些基本默认配置是可以完成 所要完成的需求。至于其他的功能,请结合官方文档进行查阅
二。设计思路
分为设备端订阅 和 服务端订阅
设备端注意:
需要注意的是 此服务器,官网说订阅连接的时长最多65535秒,所以开发中需要注意设备端要断开再连接,达到长连接的效果
服务端注意:
至于发送端 server,则mqtt 设计为发送数据后,接收到成功回包,立刻关闭链接,从而节省资源
下面分享一下此次项目使用的mqtt封装源码,用的库是MQTTnet,详细内容写在里面