> 文档中心 > HarmonyOS系统中内核实现MQTT协议开发的方法

HarmonyOS系统中内核实现MQTT协议开发的方法

      大家好,今天主要来聊一聊,如何使用鸿蒙开始实现MQTT协议开发的方法

 

第一:MQTT基本原理   

在MQTT协议通讯中,有两个最为重要的角色。它们分别是服务端客户端首先我们来初步了解一下它们。

MQTT服务端

MQTT服务端通常是一台服务器。它是MQTT信息传输的枢纽,负责将MQTT客户端发送来的信息传递给MQTT客户端。MQTT服务端还负责管理MQTT客户端。确保客户端之间的通讯顺畅,保证MQTT消息得以正确接收和准确投递。

MQTT客户端

MQTT客户端可以向服务端发布信息,也可以从服务端收取信息。我们把客户端发送信息的行为成为“发布”信息。而客户端要想从服务端收取信息,则首先要向服务端“订阅”信息。“订阅”信息这一操作很像我们在视频网站订阅某一部电视剧。当这部电视剧上新后,视频网站会向订阅了该剧的用户发送信息,告诉他们有新剧上线了。

MQTT主题

刚刚我们在讲解MQTT客户端订阅信息时,使用了用户在视频网站订阅电视剧这个例子。在MQTT通讯中,客户端所订阅的肯定不是一部部电视剧,而是一个个“主题”。MQTT服务端在管理MQTT信息通讯时,就是使用“主题”来控制的。

第二:下载MQTT消息代理工具Mosquitto

    点击下载Mosquitto 工具

 下载后双击安装包,安装工具,安装完毕后,打开电脑设备管理器,在“服务”中开启mosquitto服务。

修改安装路径下的mosquitto.conf文件 修改515行附近代码

 修改216行附近代码,其中192.168.0.173为自己的电脑的IP地址

第三:下载Eclipse Paho MQTT 工具

    点击下载Eclipse Paho MQTT 工具

    

 解压缩后,双击paho.exe,打开后的Eclipse Paho UI开始界面,点击上图中的 十字图标,就能新建一个MQTT的客户端的连接,如下图所示。

输入正确的MQTT服务端的连接地址,比如,本例中的连接地址是tcp://localhost:1883,然后点击“连接”按钮,这个时候,如果MQTT服务端没有设置密码(默认情况是没有密码的)的话,这个时候,我们就能看到连接得到状态是“已连接”,如下图所示: 

 这个时候我们就能订阅消息了。选择“订阅”下方的绿色十字图标,就可以输入订阅的主题(topic)的名字,比如我们设置主题名称为

 第四:修改对接IP

    将代码中对接的IP修改为电脑在命令行窗口里输入 ipconfig 查询的电脑的本地IP。

 

第五:修改BUILD.gn文件

      修改 applications\sample\BearPi\BearPi-HM_Nano路径下 BUILD.gn 文件,指定 iot_mqtt 参与编译。

#"D1_iot_wifi_sta:wifi_sta",#"D2_iot_wifi_sta_connect:wifi_sta_connect",#"D3_iot_udp_client:udp_client",#"D4_iot_tcp_server:tcp_server","D5_iot_mqtt:iot_mqtt", #"D6_iot_cloud_oc:oc_mqtt",#"D7_iot_cloud_onenet:onenet_mqtt",

第六: 编译号代码并烧写到开发板

     示例代码编译烧录代码后,按下开发板的RESET按键,Eclipse Paho MQTT 工具上会接收到开发板发布的消息。

 往开发板发送一条消息主题为“substopic”,内容为“Hello HarmoayOS!”的MQTT消息。然后点击“发布”按钮,这个时候,我们就能看到消息已经发送成功。

 且开发板的串口上也打印出接收消息成功的信息。