五、MQTT源码目录结构

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目录

  • 平台相关的代码
  • 不同环境移植的内容不同
文件夹环境
FreeRTOSFreeRTOS系统
linuxlinux系统
RT-ThreadRT-Thread系统
TencentOS-tiny腾讯物联网终端操作系统

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java MQTT 是一个 MQTT(Message Queue Telemetry Transport)协议的 Java 客户端实现。MqttClient 类是 Java MQTT 提供的核心类,用于与 MQTT 服务器建立连接并进行通信。 Java MQTT 码主要包含以下几个部分: 1. MqttClient 类:实现了 MQTT 客户端的基本功能,可以与 MQTT 代理服务器建立连接,并提供订阅、发布消息、断开连接等操作。在 MqttClient 类中,通过 Socket 连接到 MQTT 服务器,并使用协议规定的固定报头和可变报头等进行通信。 2. MqttConnectOptions 类:用于设置与 MQTT 服务器建立连接的选项,包括客户端 ID、用户名、密码、遗嘱消息、保持活动时间间隔等。MqttConnectOptions 类可以用来定制 MQTT 客户端的连接行为。 3. MqttCallback 接口:用于接收 MQTT 客户端的回调通知,包括连接成功、连接失败、消息到达等事件。开发者可以实现 MqttCallback 接口,根据自己的业务逻辑处理接收到的 MQTT 消息。 4. MqttMessage 类:表示 MQTT 消息的内容和属性,包括负载(payload)、服务质量(QoS)、是否保留等。在使用 Java MQTT 发布和订阅消息时,可以通过 MqttMessage 类封装消息的相关信息。 5. MqttTopic 类:提供了订阅和取消订阅 MQTT 主题的方法,可以用来控制订阅和取消订阅操作。 Java MQTT 码的设计目标是提供一个高效、易于使用的 MQTT 客户端实现,使 Java 开发者能够简单地与 MQTT 服务器进行通信。通过阅读码,开发者可以了解其内部实现原理,以及如何使用 Java MQTT 构建 MQTT 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码织梦师小猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值