附录五:二开设备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配置的例子一</p>
<pre><code>{&quot;host&quot;:&quot;xxxxx&quot;,&quot;port&quot;:1883,&quot;username&quot;:&quot;xxxxx&quot;,&quot;password&quot;:&quot;xxxxx&quot;,&quot;clientID&quot;:&quot;%imei%&quot;,&quot;keepAlive&quot;:30,&quot;cleanSession&quot;:true,&quot;publishTopic&quot;:&quot;/devtoser&quot;,&quot;publishQos&quot;:1,&quot;publishRetain&quot;:false,&quot;subscribeTopic&quot;:&quot;/sertodev/%imei%&quot;,&quot;subscribeQos&quot;:1,&quot;willTopic&quot;:&quot;/devtoser&quot;,&quot;willQos&quot;:1,&quot;willRetain&quot;:false,&quot;will&quot;:&quot;{\&quot;imei\&quot;:\&quot;%imei%\&quot;,\&quot;method\&quot;:\&quot;close\&quot;}&quot;}</code></pre>
<p>其中
subscribeTopic为
/sertodev/%imei%
其中%imei%会替换成设备实际的imei。
subscribeTopic是设备订阅的主题,用来接收发送给设备的命令。</p>
<p>publishTopic、willTopic为
/devtoser
publishTopic是设备发布的主题,用来发送设备执行完命令后的应答,还有设备事件(比如按键事件、订单结束事件等)的上报。
设备发布的应答中,都会带有设备实际的imei,可以用imei来区分是哪个设备的应答。</p>
<p>willTopic是设备的遗嘱主题,设备离线后,mqtt服务器会将will遗嘱发送给订阅了willTopic的软件客户端。</p>
<p>MQTT配置例子二</p>
<pre><code>{&quot;host&quot;:&quot;xxxxx&quot;,&quot;port&quot;:1883,&quot;username&quot;:&quot;xxxxx&quot;,&quot;password&quot;:&quot;xxxxx&quot;,&quot;clientID&quot;:&quot;%imei%&quot;,&quot;keepAlive&quot;:30,&quot;cleanSession&quot;:true,&quot;publishTopic&quot;:&quot;/devtoser/pub/%imei%&quot;,&quot;publishQos&quot;:1,&quot;publishRetain&quot;:false,&quot;subscribeTopic&quot;:&quot;/sertodev/%imei%&quot;,&quot;subscribeQos&quot;:1,&quot;willTopic&quot;:&quot;/devtoser/will/%imei%&quot;,&quot;willQos&quot;:1,&quot;willRetain&quot;:false,&quot;will&quot;:&quot;{\&quot;imei\&quot;:\&quot;%imei%\&quot;,\&quot;method\&quot;: \&quot;close\&quot;}&quot;}</code></pre>
<p>参数大致和例子一相同,不同的是publishTopic、willTopic都加上了%imei%。
软件客户端可以</p>
<ol>
<li>通过订阅每一个设备的publishTopic,来处理不同设备的应答。</li>
<li>通过订阅主题通配符,比如/devtoser/pub/+,然后根据主题来区分设备。</li>
</ol>