日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

mqtt

更新時(shí)間:

更正文檔

概述

MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級(jí)”通訊協(xié)議,該協(xié)議構(gòu)建于 TCP/IP 協(xié)議上,由 IBM 在1999年發(fā)布。MQTT 最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。作為一種低開銷、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。

MQTT 是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT 協(xié)議是輕量、簡(jiǎn)單、開放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過衛(wèi)星鏈路通信傳感器、偶爾撥號(hào)的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。

Paho MQTT 是 Eclipse 實(shí)現(xiàn)的基于 MQTT 協(xié)議的客戶端,本軟件包是在 Eclipse paho-mqtt 源碼包的基礎(chǔ)上設(shè)計(jì)的一套 MQTT 客戶端程序。

該組件支持以下功能:

  • MQTT Connect

  • MQTT Subscribe

  • MQTT Publish

  • 可連接阿里云物聯(lián)網(wǎng)平臺(tái)

版權(quán)信息

說明

Eclipse Distribution License v1.0

目錄結(jié)構(gòu)

├── MQTTClient-C
│   ├── MQTTClient.c
│   ├── MQTTClient.h
│   ├── MQTTLinux.c
│   └── MQTTLinux.h
├── MQTTPacket
│   ├── MQTTConnectClient.c
│   ├── MQTTConnect.h
│   ├── MQTTConnectServer.c
│   ├── MQTTDeserializePublish.c
│   ├── MQTTFormat.c
│   ├── MQTTFormat.h
│   ├── MQTTPacket.c
│   ├── MQTTPacket.h
│   ├── MQTTPublish.h
│   ├── MQTTSerializePublish.c
│   ├── MQTTSubscribeClient.c
│   ├── MQTTSubscribe.h
│   ├── MQTTSubscribeServer.c
│   ├── MQTTUnsubscribeClient.c
│   ├── MQTTUnsubscribe.h
│   ├── MQTTUnsubscribeServer.c
│   └── StackTrace.h
├── example
│   ├── aiot_mqtt_sign.c  #連接阿里云物聯(lián)網(wǎng)平臺(tái)需要加簽
│   └── mqtt_example.c    # 示例代碼
├── package.yaml          # 編譯配置文件
└─── README.md

依賴組件

  • osal_aos

  • mbedtls

常用配置

HTTP的常用配置在文件package.yaml內(nèi)

說明

CONFIG_AIOT_SIGN :是否開啟阿里云物聯(lián)網(wǎng)平臺(tái)加簽

CONFIG_AIOT_SIGN: 1
說明

MQTT_PORT : MQTT默認(rèn)端口

#ifndef MQTT_PORT
#define MQTT_PORT   443
#endif

API說明

MQTT初始化

DLLExport void MQTTClientInit(MQTTClient* client, Network* network, unsigned int command_timeout_ms,
                unsigned char* sendbuf, size_t sendbuf_size, unsigned char* readbuf, size_t readbuf_size);

args

description

client

MQTT client上下文

network

網(wǎng)絡(luò)對(duì)象

command_timeout_ms

超時(shí)時(shí)間

MQTT連接請(qǐng)求

DLLExport int MQTTConnect(MQTTClient* client, MQTTPacket_connectData* options);

args

description

client

MQTT client上下文

options

MQTT連接選項(xiàng)

MQTT發(fā)布主題

DLLExport int MQTTPublish(MQTTClient* client, const char* topic, MQTTMessage* message);

args

description

client

MQTT client上下文

topic

MQTT發(fā)布的主題

message

MQTT發(fā)布的消息主體

MQTT訂閱主題

DLLExport int MQTTSubscribe(MQTTClient* client, const char* topicFilter, enum QoS, messageHandler);

args

description

client

MQTT client上下文

topicFilter

MQTT訂閱的主題

messageHandler

MQTT消息處理句柄

MQTT取消訂閱主題

DLLExport int MQTTUnsubscribe(MQTTClient* client, const char* topicFilter);

args

description

client

MQTT client上下文

topicFilter

MQTT訂閱的主題

MQTT斷開連接請(qǐng)求

DLLExport int MQTTDisconnect(MQTTClient* client);

args

description

client

MQTT client上下文

MQTT等待響應(yīng)

DLLExport int MQTTYield(MQTTClient* client, int time);

args

description

client

MQTT client上下文

time

等待時(shí)間

MQTT是否處于連接狀態(tài)

DLLExport int MQTTIsConnected(MQTTClient* client);

args

description

client

MQTT client上下文

使用示例

組件使用示例相關(guān)的代碼下載、編譯和固件燒錄均依賴AliOS Things配套的開發(fā)工具 alios-studio ,所以首先需要參考《aos-studio使用說明之搭建開發(fā)環(huán)境》,下載安裝 alios-studio 。 待開發(fā)環(huán)境搭建完成后,可以按照以下步驟進(jìn)行示例的測(cè)試。

步驟1 創(chuàng)建或打開工程

  • 打開已有工程

如果用于測(cè)試的案例工程已存在,可參考《aos-studio使用說明之打開工程》打開已有工程。

  • 創(chuàng)建新的工程

組件的示例代碼可以通過編譯鏈接到AliOS Things的任意案例(solution)來運(yùn)行,這里選擇helloworld_demo案例。helloworld_demo案例相關(guān)的源代碼下載可參考《aos-studio使用說明之創(chuàng)建工程》。

步驟2 添加組件

案例下載完成后,需要在helloworld_demo組件的package.yaml中添加對(duì)組件的依賴:

depends:
  - netmgr: dev_aos   # helloworld_demo中引入netmgr組件,用于WiFi聯(lián)網(wǎng)
  - mqtt: dev_aos     # helloworld_demo中引入mqtt組件

步驟3 下載組件

在已安裝了 alios-studio 的開發(fā)環(huán)境工具欄中,選擇Terminal -> New Terminal啟動(dòng)終端,并且默認(rèn)工作路徑為當(dāng)前工程的workspace,此時(shí)在終端命令行中輸入:

aos install mqtt

上述命令執(zhí)行成功后,組件源碼則被下載到了./components/mqtt路徑中。

步驟4 添加示例

在mqtt組件的package.yaml中添加example示例代碼

source_file:
  - "src/*.c"
  - "example/*.c"     # 增加示例代碼

步驟5 編譯固件

在示例代碼已經(jīng)添加至組件的配置文件,并且helloworld_demo已添加了對(duì)該組件的依賴后,就可以編譯helloworld_demo案例來生成固件了,具體編譯方法可參考《aos-studio使用說明之編譯固件》。

步驟6 燒錄固件

helloworld_demo案例的固件生成后,可參考《aos-studio使用說明之燒錄固件》來燒錄固件。

步驟7 打開串口

固件燒錄完成后,可以通過串口查看示例的運(yùn)行結(jié)果,打開串口的具體方法可參考《aos-studio使用說明之查看日志》。

當(dāng)串口終端打開成功后,可在串口中輸入help來查看已添加的測(cè)試命令。

步驟8 測(cè)試示例

說明

CLI命令行輸入初始化netmgr命令:

netmgr_example
說明

CLI命令行輸入聯(lián)網(wǎng)命令(ssid和password換成自己的):

netmgr -t wifi -c ssid password
說明

然后,CLI命令行輸入:

mqtt_example

關(guān)鍵日志

說明

CLI日志:

Network Connect success!
Mqtt Connect success!
Mqtt Subscribe success, topic:xxxx!