附录五:二开设备MQTT配置说明
<p>二开设备MQTT参数配置说明</p>
<ol>
<li>clientID最好带有%imei%的,%imei%设备会替换成设备的imei,确保唯一性。</li>
<li>cleanSession最好设置为true。</li>
<li>subscribeTopic不能和publishTopic、willTopic一样。</li>
<li>qos推荐为1</li>
<li>所有参数都必须填写,不能为空。</li>
<li>复制时注意不要复制空格回车换行等不可见字符。</li>
<li>clientID、subscribeTopic、publishTopic、willTopic、will支持%imei%替换语法,%imei%设备会替换成设备的imei。</li>
</ol>
<p>以下是MQTT配置的例子一
{"host":"xxxxx","port":1883,"username":"xxxxx","password":"xxxxx","clientID":"%imei%","keepAlive":30,"cleanSession":true,"publishTopic":"/devtoser","publishQos":1,"publishRetain":false,"subscribeTopic":"/sertodev/%imei%","subscribeQos":1,"willTopic":"/devtoser","willQos":1,"willRetain":false,"will":"{\"imei\":\"%imei%\",\"method\": \"close\"}"}</p>
<p>其中
subscribeTopic为
/sertodev/%imei%
其中%imei%会替换成设备实际的imei。
subscribeTopic是设备订阅的主题,用来接收发送给设备的命令。</p>
<p>publishTopic、willTopic为
/devtoser
publishTopic是设备发布的主题,用来发送设备执行完命令后的应答,还有设备事件(比如按键事件、订单结束事件等)的上报。
设备发布的应答中,都会带有设备实际的imei,可以用imei来区分是哪个设备的应答。</p>
<p>willTopic是设备的遗嘱主题,设备离线后,mqtt服务器会将will遗嘱发送给订阅了willTopic的软件客户端。</p>
<p>MQTT配置例子二
{"host":"xxxxx","port":1883,"username":"xxxxx","password":"xxxxx","clientID":"%imei%","keepAlive":30,"cleanSession":true,"publishTopic":"/devtoser/pub/%imei%","publishQos":1,"publishRetain":false,"subscribeTopic":"/sertodev/%imei%","subscribeQos":1,"willTopic":"/devtoser/will/%imei%","willQos":1,"willRetain":false,"will":"{\"imei\":\"%imei%\",\"method\": \"close\"}"}</p>
<p>参数大致和例子一相同,不同的是publishTopic、willTopic都加上了%imei%。
软件客户端可以</p>
<ol>
<li>通过订阅每一个设备的publishTopic,来处理不同设备的应答。</li>
<li>通过订阅主题通配符,比如/devtoser/pub/+,然后根据主题来区分设备。</li>
</ol>