调整格式
|
@ -1,14 +1,5 @@
|
|||
SRC_FILES += test_mqttclient.c\
|
||||
MQTTPacket.c\
|
||||
MQTTConnectClient.c \
|
||||
MQTTConnectServer.c \
|
||||
MQTTDeserializePublish.c \
|
||||
MQTTFormat.c \
|
||||
MQTTSerializePublish.c \
|
||||
MQTTSubscribeClient.c \
|
||||
MQTTSubscribeServer.c \
|
||||
MQTTUnsubscribeClient.c \
|
||||
MQTTUnsubscribeServer.c \
|
||||
transport.c
|
||||
SRC_FILES += test_mqttclient.c
|
||||
|
||||
|
||||
SRC_DIR += mqtt
|
||||
include $(KERNEL_ROOT)/compiler.mk
|
|
@ -1,15 +1,55 @@
|
|||
## 1. 简介
|
||||
|
||||
本代码实现了MQTT对服务器订阅主体并发送信息功能
|
||||
|
||||
## 2. 数据结构设计说明
|
||||
|
||||
### 2.1 MQTT数据结构定义
|
||||
|
||||

|
||||
|
||||
### 2.2 数据解析与加密
|
||||
|
||||

|
||||
|
||||
### 2.3 MQTT连接与订阅
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 3. 测试程序说明
|
||||
|
||||
MQTT基于TCP/IP协议,分为客户端与服务端。在本任务中,ARM终端作为客户端,与服务端连接并进行主题订阅。
|
||||
|
||||
以下代码设置了进行订阅时需要的Client ID、用户名、密码及订阅主题。
|
||||
|
||||

|
||||
|
||||
客户端首先需要根据以上信息向服务端发起连接请求,验证用户名及密码
|
||||
|
||||

|
||||
|
||||
随后进行主题订阅,接收服务端发布的消息
|
||||
|
||||

|
||||
|
||||
在订阅过程中需要对获取的信息进行读取,同时每隔一段时间向服务端发送保持活性ping请求,以维持与服务端的连接
|
||||
|
||||

|
||||
|
||||
## 4. 测试流程
|
||||
|
||||
测试流程为:
|
||||
|
||||
首先执行setip命令,设置设备ip地址
|
||||
|
||||

|
||||

|
||||
|
||||
随后执行“MqttSocketSendTest 服务器ip”命令,订阅主题并发送test信息
|
||||
随后执行“MqttSocketRecvTest 服务器ip”命令,订阅主题,然后在服务器端发布消息如图所示
|
||||
|
||||

|
||||

|
||||
|
||||
最终服务器接收到信息,如图所示
|
||||
最终设备端接收到信息
|
||||
|
||||

|
||||

|
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 106 KiB |
|
@ -0,0 +1,13 @@
|
|||
SRC_FILES +=MQTTPacket.c\
|
||||
MQTTConnectClient.c \
|
||||
MQTTConnectServer.c \
|
||||
MQTTDeserializePublish.c \
|
||||
MQTTFormat.c \
|
||||
MQTTSerializePublish.c \
|
||||
MQTTSubscribeClient.c \
|
||||
MQTTSubscribeServer.c \
|
||||
MQTTUnsubscribeClient.c \
|
||||
MQTTUnsubscribeServer.c \
|
||||
transport.c
|
||||
|
||||
include $(KERNEL_ROOT)/compiler.mk
|
|
@ -27,9 +27,9 @@
|
|||
#include "lwip/sys.h"
|
||||
#include "lwip/api.h"
|
||||
|
||||
#include "MQTTPacket.h"
|
||||
#include "MQTTSubscribe.h"
|
||||
#include "transport.h"
|
||||
#include "mqtt/MQTTPacket.h"
|
||||
#include "mqtt/MQTTSubscribe.h"
|
||||
#include "mqtt/transport.h"
|
||||
#include <cJSON_Process.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -39,14 +39,18 @@
|
|||
#define USER_NAME "test&iw3rn3pa11K" //用户名
|
||||
#define PASSWORD "7b948d22fe46f0f63d1a403376d26e7cb298abc227d29e44311d7040307a71f8" //秘钥
|
||||
|
||||
// #define CLIENT_ID "hc123456789" //随机的id
|
||||
// #define USER_NAME "xiuos" //用户名
|
||||
// #define PASSWORD "xiuos" //秘钥
|
||||
|
||||
|
||||
#define TOPIC "/iw3rn3pa11K/test/user/Test" //订阅的主题
|
||||
|
||||
#define TEST_MESSAGE "test_message" //发送测试消息
|
||||
|
||||
|
||||
// #define CLIENT_ID "hc123456789" //随机的id
|
||||
// #define USER_NAME "xiuos" //用户名
|
||||
// #define PASSWORD "xiuos" //秘钥
|
||||
|
||||
|
||||
enum QoS
|
||||
{ QOS0 = 0,
|
||||
QOS1,
|
||||
|
|
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 29 KiB |