# linux_mqtt_test **Repository Path**: crystal266/linux_mqtt_test ## Basic Information - **Project Name**: linux_mqtt_test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-04 - **Last Updated**: 2021-04-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1.编译方法: 编译之前需要安装 cmake,安装方法为 sudo apt-get install cmake cd build cmake .. make 生成的文件在obj文件夹下,可执行文件名字为app 2. 依据自己的服务器的IP用户名和密码修改 inc/mqtt_test.h 中的服务器IP端口号以及MQTT三元组的宏定义 本次测试实例为连接腾讯云,腾讯云文档为 https://cloud.tencent.com/document/product/634/14630 腾讯云生成秘钥的python脚本见本工程下的 doc/IotHmac.py 文件 3. 文件结构 ```c . // 工程的根目录 ├── build // 编译的文件夹,存放编译生成的中间文件 ├── cJson // c 和 JSON 互转的库 │   ├── cJSON.c │   └── cJSON.h ├── CMakeLists.txt // cmake脚本 ├── doc // 文档 │   └── IotHmac.py // 腾讯云密钥认证时生成秘钥的python脚本 ├── easylogger // 日志库 │   ├── elog_async.c // 核心功能异步输出模式源码 │   ├── elog_buf.c // 核心功能缓冲输出模式源码 │   ├── elog.c // 核心功能源码 │   ├── elog_cfg.h │   ├── elog.h │   ├── elog_port.c // 不同平台下的EasyLogger移植接口 │   ├── elog_start.c │   ├── elog_start.h │   ├── elog_utils.c // EasyLogger常用小工具 │   ├── file // EasyLogger 的 File 插件 │   │   ├── elog_file.c │   │   ├── elog_file_cfg.h │   │   ├── elog_file.h │   │   └── elog_file_port.c │   ├── flash // EasyLogger 的 Flash 插件 │   │   ├── elog_flash.c │   │   ├── elog_flash_cfg.h │   │   ├── elog_flash.h │   │   └── elog_flash_port.c ├── inc │   └── mqtt_test.h ├── MQTTpacket // MQTT库 │   ├── inc │   │   ├── MQTTConnect.h │   │   ├── MQTTFormat.h │   │   ├── MQTTPacket.h │   │   ├── MQTTPublish.h │   │   ├── MQTTSubscribe.h │   │   ├── MQTTUnsubscribe.h │   │   ├── StackTrace.h │   │   └── transport.h │   └── src │   ├── MQTTConnectClient.c // 连接 │   ├── MQTTConnectServer.c // 连接 │   ├── MQTTDeserializePublish.c // 发布 │   ├── MQTTFormat.c │   ├── MQTTPacket.c │   ├── MQTTSerializePublish.c // 发布 │   ├── MQTTSubscribeClient.c // 订阅 │   ├── MQTTSubscribeServer.c // 订阅 │   ├── MQTTUnsubscribeClient.c // 取消订阅 │   ├── MQTTUnsubscribeServer.c // 取消订阅 │   └── transport.c // 需要移植的和硬件相关的接口文件 ├── obj // 目标文件文件夹 ├── Readme.md // 帮助文件 └── src // 源文件 ├── main.c // 主程序文件 └── mqtt_test.c // mqtt测试文件 ``` 4. 测试结果log信息 ```c linux@linux:~/myfiles/mqtt_test/obj$ ./app I/elog [04-04 14:28:02] EasyLogger V2.2.99 is initialize success. I/transport [04-04 14:30:57] server_IP is 49.233.106.190, server_port is 1883 I/mqtt_test [04-04 14:28:02] tcp connect success I/mqtt_test [04-04 14:28:02] mqtt connect server success I/mqtt_test [04-04 14:28:02] mqtt subscribe success I/mqtt_test [04-04 14:28:02] mqtt publish success. payload is temperature: 23.5 I/mqtt_test [04-04 14:28:07] mqtt publish success. payload is temperature: 22.9 I/mqtt_test [04-04 14:28:12] mqtt publish success. payload is temperature: 22.1 I/mqtt_test [04-04 14:28:17] mqtt publish success. payload is temperature: 20.2 I/mqtt_test [04-04 14:28:22] mqtt publish success. payload is temperature: 27.6 I/mqtt_test [04-04 14:28:27] mqtt publish success. payload is temperature: 23.1 D/mqtt_test [04-04 14:28:32 pid:11601] send heartbeat success I/mqtt_test [04-04 14:28:32] mqtt publish success. payload is temperature: 25.5 I/mqtt_test [04-04 14:28:37] mqtt publish success. payload is temperature: 21.8 I/mqtt_test [04-04 14:28:42] mqtt publish success. payload is temperature: 26.1 I/mqtt_test [04-04 14:28:47] mqtt publish success. payload is temperature: 27.1 I/mqtt_test [04-04 14:28:52] unsubscribe topic success. packetid:100 I/mqtt_test [04-04 14:28:52] send disconnect packet success I/mqtt_test [04-04 14:28:52] delete mqtt heartbeat timer I/mqtt_test [04-04 14:28:52] delete heartbeat timer I/mqtt_test [04-04 14:28:52] cancel recv pthread I/mqtt_test [04-04 14:28:52] destory mutex I/mqtt_test [04-04 14:28:52] close tcp connect ```