1 / 22
文档名称:

最新mosquitto源码分析.doc

格式:doc   大小:453KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

最新mosquitto源码分析.doc

上传人:朱老师 2022/2/10 文件大小:453 KB

下载得到文件列表

最新mosquitto源码分析.doc

文档介绍

文档介绍:mosquitto源码分析
mosquitto源码分析
 本文由逍遥子撰写,转发请标注原址:

一、  Mos
         |----cpp
         |----python
         |----python3
     |---- ssl
         |----demoCA
         |----rootCA
         |----signingCA       
所需关注的目录有/ mosquitto-、/ mosquitto-、/ mosquitto-,其中src和lib目录下主要放置mosquitto的实现代码以及局部底层与网络相关的操作,client目录主要为两个客户端程序的实现源码。
Mosquito的源码及其相关文档可从其官方网站获取,其官方网站为:/
mosquitto客户端和效劳器运行命令
[1] 发布者客户端运行命令例如:
./mosquitto_pub -h -p 1883 -t "111" -m "this is " -u 111 -P 111
[2] 订阅者客户端运行命令例如:
./mosquitto_sub -h -i 111 -p 1883 -t 111 -k 60 -d -c -u hjx -P hjx
[3] mosquitto效劳器端运行命令例如:
./mosquitto
二、  Mosquito的数据结构
1〕  struct mosquito
结构体struct mosquito主要用于保存一个客户端连接的所有信息,例如用户名、密码、用户ID、向该客户端发送的消息等,其定义为:
struct mosquitto {
   int sock;
   char*address;
   char *id;
   char*username;
   char*password;
   uint16_tkeepalive;
   time_tlast_msg_in;
   time_tlast_msg_out;
struct mosquitto_client_msg *msgs;

}
上面列举了该结构体局部重要成员,其中sock表示mosquitto效劳器程序与该客户端连接通信所用的socket描述符;address表示该客户端的IP地址;id是该客户端登陆mosquitto程序时所提供的ID值,该值与其他的客户端不能重复;成员username和password用于记录客户端登陆时所提供的用户名和密码;keepalive是该客户端需在此时间内向mosquitto效劳器程序发送一条ping/pong消息。参数last_msg_in和last_msg_out用于记录上次收发消息的时间;参数struct mosquitto_client_msg*msgs用于暂时存储发往该context的消息。
2〕  struct mosquitto_db
结构体struct mosquitto_db是mosquitto对所有内部数据的统一管理结构,可以认为是其内部的一个内存数据库。它保存了所有的客户端,所有客户端的订阅关系等等,其定义形式为:
struct mosquitto_db{
   dbid_tlast_db_id;
   struct_mosquitto_subhier subs;
   struct mosquitto**contexts;
   struct_clientid_index_hash *clientid_index_hash;
   intcontext_count;
   structmosquitto_msg_store *msg_store;
   intmsg_store_count;
   structmqtt3_config *config;
   intsubscription_count;
……
};
上述结构体声明中,结构体成员struct _mosquitto_subhier subs保存了订阅树的总树根,mosquitto中对所有的topic都在该订阅树中维护,客户端的订阅关系也在该订阅树中维护;结构体成员struct mosquitto **contexts可理解为一个用于存放所有客户端变量〔类型为struct

最近更新

电子产品土石方清运服务3篇 53页

2025年李清照词解析 8页

2025年本质量环境食品安全HACCP四合一管理手册.. 94页

2025年投标违约责任承诺书集合9篇 8页

2025年技术股份合作协议书通用 5页

2025年暑假五升六的阅读训练 11页

2025年景观设计师素质要点 7页

硫化氢的危害与防治 22页

2025年旬邑县崔家河坡改梯工程施工组织设计典.. 15页

2025年我看见了水帘洞四年级作文(通用篇) 10页

矩形矩形的判定 13页

2025年我的父亲母亲散文阅读训练及答案 3页

2025年我的暑假总结范文 7页

2025年旅行社年终工作总结 8页

2025年我爱秋天的作文600字(精选20篇) 18页

2025年小学生守则主题班会 3页

2025年我想你了的说说 42页

医院个人党性分析(32篇) 137页

2025年大体积混凝土的裂缝成因与控制办法 5页

2025年地铁车站深基坑盖挖逆作法施工技术及其.. 19页

2024年安置房买卖合同精编版(二篇) 5页

《父母课堂》案例教学教案——父母才是孩子的.. 5页

高分突破语文七年级下册早读材料 8页

sourze A300 变频器说明书 1页

心肌致密化不全课件PPT 24页

《美学名著汇总-PDF版》 资料 → 图书杂志 .. 2页

10国家电网公司电视电话会议管理办法 24页

保护动机理论健康行为解释干预与预测研究 6页

最新文档IEC 61373-2010铁路应用 铁道车辆设备.. 72页

J45-6.3型双动拉伸压力机的设计(有图CAD有真.. 38页