mosquitto 源码分析 (一)核心数据结构

本文分析了mosquitto源代码中的核心数据结构,包括struct mosquitto,它保存客户端连接信息,含有多个关键成员。另外,struct mosquitto_db作为数据仓库,管理所有客户端和订阅关系,采用孩子-兄弟链表法存储订阅树,并保存配置信息。后续文章将进一步结合使用方法深入解析。
摘要由CSDN通过智能技术生成

mosquitto 源代码中核心数据结构分析

一、struct mosquitto (在mosquitto_internel.h中定义)

    struct mosquitto 这个结构体用来保存一个客户端连接的所有信息

    这个结构体包含了很多成员,我们选取一些重要的成员,在代码中标注:

struct mosquitto {
#ifndef WIN32
	int sock; /*服务器程序与该客户端连接通信所用的socket描述符*/
#  ifndef WITH_BROKER
	int sockpairR, sockpairW;
#  endif
#else
	SOCKET sock;
#  ifndef WITH_BROKER
	SOCKET sockpairR, sockpairW;
#  endif
#endif
	enum _mosquitto_protocol protocol;
	char *address;/*该客户端的IP地址*/
	char *id;/*该客户端登陆mosquitto程序时所提供的ID值,该值与其他的客户端不能重复*/
	char *username;/*登录用户名*/
	char *password;/*密码*/
	uint16_t keepalive;/*该客户端需在此时间内向mosquitto服务器程序发送一条ping/pong消息*/
	uint16_t last_mid;
	enum mosquitto_client_state state;
	time_t last_msg_in;/*last_msg_in和last_msg_out用于记录上次收发消息的时间*/
	time_t last_msg
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值