1、源码的获取
2、mqttclient源码目录结构
(1)mqttclient源码目录树。(由目录树生成工具zDirTree生成)
E:\Gitee\MQTT\mqttclient
├.github
│ ├workflows
│ │ ├codeql-buildscript.sh
│ │ ├codeql.yml
│ │ ├fail_on_error.py
├.gitignore
├build.sh
├build_deb.sh
├cmake
│ ├color.cmake
│ ├config.cmake.in
│ ├install.cmake
│ ├module.cmake
├CMakeLists.txt
├common // 一些通用程序
│ ├CMakeLists.txt
│ ├log
│ │ ├arch
│ │ │ ├CMakeLists.txt
│ │ │ ├freertos
│ │ │ │ ├arch.c
│ │ │ ├linux
│ │ │ │ ├arch.c
│ │ │ │ ├CMakeLists.txt
│ │ │ ├rt-thread
│ │ │ │ ├arch.c
│ │ │ ├tencentos-tiny
│ │ │ │ ├arch.c
│ │ ├build.sh
│ │ ├CMakeLists.txt
│ │ ├fifo.c
│ │ ├fifo.h
│ │ ├format.c
│ │ ├format.h
│ │ ├salof.c
│ │ ├salof.h
│ │ ├salof_config.h
│ │ ├salof_defconfig.h
│ ├mqtt_defconfig.h
│ ├mqtt_error.h
│ ├mqtt_list.c
│ ├mqtt_list.h
│ ├mqtt_log.h
│ ├random.c
│ ├random.h
├config
│ ├mqtt_config.h
├docs
│ ├mqtt-aliyun.md
│ ├mqtt-baidu.md
│ ├mqtt-communication.md
│ ├mqtt-config.md
│ ├mqtt-design.md
│ ├mqtt-introduction.md
│ ├mqtt-onenet.md
│ ├mqtt-tool.md
├example // 示例代码
│ ├ali // 阿里平台
│ │ ├ali.c
│ │ ├CMakeLists.txt
│ │ ├mqtt_config.h
│ ├baidu // 百度平台
│ │ ├baidu.c
│ │ ├CMakeLists.txt
│ │ ├mqtt_config.h
│ ├CMakeLists.txt
│ ├emqx // emqx平台
│ │ ├ca.inc
│ │ ├CMakeLists.txt
│ │ ├emqx.c
│ │ ├mqtt_config.h
│ ├mqttclient.cmake
│ ├onenet // onenet平台
│ │ ├CMakeLists.txt
│ │ ├mqtt_config.h
│ │ ├onenet.c
├LICENSE
├make-libmqttclient.sh
├make_deb.sh
├mqtt // 格式相关程序
│ ├CMakeLists.txt
│ ├MQTTConnect.h
│ ├MQTTConnectClient.c
│ ├MQTTConnectServer.c
│ ├MQTTDeserializePublish.c
│ ├MQTTFormat.c
│ ├MQTTFormat.h
│ ├MQTTPacket.c
│ ├MQTTPacket.h
│ ├MQTTPublish.h
│ ├MQTTSerializePublish.c
│ ├MQTTSubscribe.h
│ ├MQTTSubscribeClient.c
│ ├MQTTSubscribeServer.c
│ ├MQTTUnsubscribe.h
│ ├MQTTUnsubscribeClient.c
│ ├MQTTUnsubscribeServer.c
│ ├StackTrace.h
├mqttclient // 核心
│ ├CMakeLists.txt
│ ├mqttclient.c
│ ├mqttclient.h
├network // 网络协议
│ ├CMakeLists.txt
│ ├mbedtls
│ │ ├build.sh
│ │ ├CMakeLists.txt
│ │ ├configs
│ │ │ ├config-ccm-psk-tls1_2.h
│ │ │ ├config-mini-tls1_1.h
│ │ │ ├config-no-entropy.h
│ │ │ ├config-suite-b.h
│ │ │ ├config-thread.h
│ │ ├include
│ │ │ ├CMakeLists.txt
│ │ │ ├mbedtls
│ │ │ │ ├aes.h
│ │ │ │ ├aesni.h
│ │ │ │ ├arc4.h
│ │ │ │ ├aria.h
│ │ │ │ ├asn1.h
│ │ │ │ ├asn1write.h
│ │ │ │ ├base64.h
│ │ │ │ ├bignum.h
│ │ │ │ ├blowfish.h
│ │ │ │ ├bn_mul.h
│ │ │ │ ├camellia.h
│ │ │ │ ├ccm.h
│ │ │ │ ├certs.h
│ │ │ │ ├chacha20.h
│ │ │ │ ├chachapoly.h
│ │ │ │ ├check_config.h
│ │ │ │ ├cipher.h
│ │ │ │ ├cipher_internal.h
│ │ │ │ ├cmac.h
│ │ │ │ ├compat-1.3.h
│ │ │ │ ├config.h
│ │ │ │ ├ctr_drbg.h
│ │ │ │ ├debug.h
│ │ │ │ ├des.h
│ │ │ │ ├dhm.h
│ │ │ │ ├ecdh.h
│ │ │ │ ├ecdsa.h
│ │ │ │ ├ecjpake.h
│ │ │ │ ├ecp.h
│ │ │ │ ├ecp_internal.h
│ │ │ │ ├entropy.h
│ │ │ │ ├entropy_poll.h
│ │ │ │ ├error.h
│ │ │ │ ├gcm.h
│ │ │ │ ├havege.h
│ │ │ │ ├hkdf.h
│ │ │ │ ├hmac_drbg.h
│ │ │ │ ├md.h
│ │ │ │ ├md2.h
│ │ │ │ ├md4.h
│ │ │ │ ├md5.h
│ │ │ │ ├md_internal.h
│ │ │ │ ├memory_buffer_alloc.h
│ │ │ │ ├net.h
│ │ │ │ ├net_sockets.h
│ │ │ │ ├nist_kw.h
│ │ │ │ ├oid.h
│ │ │ │ ├padlock.h
│ │ │ │ ├pem.h
│ │ │ │ ├pk.h
│ │ │ │ ├pkcs11.h
│ │ │ │ ├pkcs12.h
│ │ │ │ ├pkcs5.h
│ │ │ │ ├pk_internal.h
│ │ │ │ ├platform.h
│ │ │ │ ├platform_time.h
│ │ │ │ ├platform_util.h
│ │ │ │ ├poly1305.h
│ │ │ │ ├ripemd160.h
│ │ │ │ ├rsa.h
│ │ │ │ ├rsa_internal.h
│ │ │ │ ├sha1.h
│ │ │ │ ├sha256.h
│ │ │ │ ├sha512.h
│ │ │ │ ├ssl.h
│ │ │ │ ├ssl_cache.h
│ │ │ │ ├ssl_ciphersuites.h
│ │ │ │ ├ssl_cookie.h
│ │ │ │ ├ssl_internal.h
│ │ │ │ ├ssl_ticket.h
│ │ │ │ ├threading.h
│ │ │ │ ├timing.h
│ │ │ │ ├version.h
│ │ │ │ ├x509.h
│ │ │ │ ├x509_crl.h
│ │ │ │ ├x509_crt.h
│ │ │ │ ├x509_csr.h
│ │ │ │ ├xtea.h
│ │ ├library
│ │ │ ├.gitignore
│ │ │ ├aes.c
│ │ │ ├aesni.c
│ │ │ ├arc4.c
│ │ │ ├aria.c
│ │ │ ├asn1parse.c
│ │ │ ├asn1write.c
│ │ │ ├base64.c
│ │ │ ├bignum.c
│ │ │ ├blowfish.c
│ │ │ ├camellia.c
│ │ │ ├ccm.c
│ │ │ ├certs.c
│ │ │ ├chacha20.c
│ │ │ ├chachapoly.c
│ │ │ ├cipher.c
│ │ │ ├cipher_wrap.c
│ │ │ ├cmac.c
│ │ │ ├CMakeLists.txt
│ │ │ ├ctr_drbg.c
│ │ │ ├debug.c
│ │ │ ├des.c
│ │ │ ├dhm.c
│ │ │ ├ecdh.c
│ │ │ ├ecdsa.c
│ │ │ ├ecjpake.c
│ │ │ ├ecp.c
│ │ │ ├ecp_curves.c
│ │ │ ├entropy.c
│ │ │ ├entropy_poll.c
│ │ │ ├error.c
│ │ │ ├gcm.c
│ │ │ ├havege.c
│ │ │ ├hkdf.c
│ │ │ ├hmac_drbg.c
│ │ │ ├Makefile
│ │ │ ├md.c
│ │ │ ├md2.c
│ │ │ ├md4.c
│ │ │ ├md5.c
│ │ │ ├md_wrap.c
│ │ │ ├memory_buffer_alloc.c
│ │ │ ├net_sockets.c
│ │ │ ├nist_kw.c
│ │ │ ├oid.c
│ │ │ ├padlock.c
│ │ │ ├pem.c
│ │ │ ├pk.c
│ │ │ ├pkcs11.c
│ │ │ ├pkcs12.c
│ │ │ ├pkcs5.c
│ │ │ ├pkparse.c
│ │ │ ├pkwrite.c
│ │ │ ├pk_wrap.c
│ │ │ ├platform.c
│ │ │ ├platform_util.c
│ │ │ ├poly1305.c
│ │ │ ├ripemd160.c
│ │ │ ├rsa.c
│ │ │ ├rsa_internal.c
│ │ │ ├sha1.c
│ │ │ ├sha256.c
│ │ │ ├sha512.c
│ │ │ ├ssl_cache.c
│ │ │ ├ssl_ciphersuites.c
│ │ │ ├ssl_cli.c
│ │ │ ├ssl_cookie.c
│ │ │ ├ssl_srv.c
│ │ │ ├ssl_ticket.c
│ │ │ ├ssl_tls.c
│ │ │ ├threading.c
│ │ │ ├timing.c
│ │ │ ├version.c
│ │ │ ├version_features.c
│ │ │ ├x509.c
│ │ │ ├x509write_crt.c
│ │ │ ├x509write_csr.c
│ │ │ ├x509_create.c
│ │ │ ├x509_crl.c
│ │ │ ├x509_crt.c
│ │ │ ├x509_csr.c
│ │ │ ├xtea.c
│ │ ├wrapper
│ │ │ ├CMakeLists.txt
│ │ │ ├entropy_hardware_alt.c
│ │ │ ├net_sockets_alt.c
│ │ │ ├timing_alt.c
│ │ │ ├timing_alt.h
│ ├nettype_tcp.c
│ ├nettype_tcp.h
│ ├nettype_tls.c
│ ├nettype_tls.h
│ ├network.c
│ ├network.h
├platform 平台相关的代码
│ ├CMakeLists.txt
│ ├FreeRTOS
│ │ ├platform_memory.c
│ │ ├......
│ ├linux
│ │ ├platform_memory.c
│ │ ├......
│ ├RT-Thread
│ │ ├platform_memory.c
│ │ ├......
│ ├TencentOS-tiny
│ │ ├platform_memory.c
│ │ ├......
├png
│ ├mqtt-tool.png
│ ├mqttclient.png
├README.md
├README_CN.md
3、mqttclient\example目录
- 该目录下包含各MQTT服务器提供商的示例代码
- 各提供商的服务器IP地址、端口号不相同
- 后续可能以emqx为例
文件夹 | 服务器提供商 |
---|
ali | 阿里云 |
baidu | 百度云 |
emqx | 杭州映云科技 |
onenet | 中国移动 |
4、mqttclient\platform目录
文件夹 | 环境 |
---|
FreeRTOS | FreeRTOS系统 |
linux | linux系统 |
RT-Thread | RT-Thread系统 |
TencentOS-tiny | 腾讯物联网终端操作系统 |