mosquitto源码分析

mosquitto源码分析

ID:36812337

大小:5.24 MB

页数:21页

时间:2019-05-15

mosquitto源码分析_第1页
mosquitto源码分析_第2页
mosquitto源码分析_第3页
mosquitto源码分析_第4页
mosquitto源码分析_第5页
资源描述:

《mosquitto源码分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、...mosquitto源码分析本文由逍遥子撰写,转发请标注原址:http://blog.csdn.net/houjixin/article/details/21461225一、Mosquitto简介mosquitto是一款实现了消息推送协议MQTTv3.1的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,例如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。Mosquitto采用出版/订阅的模式实现MQTT协议,这种设计模式将通信终端之间的关系统一到服务程序中进行

2、管理,可极大减轻客户端的开发和维护工作。1.1、mqtt协议简介MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。在某些应用场合中,可通过该协议维持与客户端的长连接。关于mqtt协议更详细的介绍,请参考其官方网站:http://mqtt.org/其个版本源码下载位置:http://mosquitto.org/files/source/1.2、出版/订阅模式简介出版/订阅模式定义了如何向一个节点发布和订阅消息,这些节点被称作主题(topi

3、c)。主题可以被认为是消息的传输中介,发布者(publisher)发布消息到主题,订阅者(subscriber)从主题订阅消息。这种模式使得消息订阅者和消息发布者保持互相独立,不需要接触即可保证消息的传送。Tcp协议中,tcp连接只提供一对一的可靠传输,例如:主机A与B进行通信,则发起tcp连接的一端只需要知道对方的ip地址和端口号即可,如下图1-1所示:图1-1一对一通信每一个tcp连接都是由下面的五个元素确定:<源ip地址,源端口号,目的ip地址,目的端口号,通信协议>......在实际程序的开发过程中一条连接建立之后,它可能需要在一段时

4、间内一直被通信双方所保持,以备下次数据传输使用。另外,通信的终端数目可能是多个,这就需要每个终端都要维持它所有的通信关系,如下图1-2所示图1-2多对多通信此时,每个参与通信的客户端所需维持的连接数量将非常庞大,这非常不利于程序的开发和实现。出版/订阅模式即是一种解决这种问题的方法,它通过增加一个中间层的方式,让中间层来维护这种多对多的关系,这个中间层通常称之为服务器,如下图1-3所示:图1-3增加中间层的多对多通信通过增加中间层服务器,每个客户端都只需要维护自己同服务器之间的连接即可,而客户端之间的关系则交由中间服务器来维护,这种设计模式将

5、复杂的通信关系维护工作从客户端剥离出来,非常方便客户端的开发和维护。Mosquito程序即是通过这种方式进行工作,在mosquitto程序内部,将客户端之间的关系通过一棵订阅树来维持。......1.1、MosquitoMosquito源码目录结构介绍。

6、----mosquitto-1.2

7、----client

8、----examples

9、----mysql_log

10、----temperature_conversion

11、----installer

12、----lib

13、----cpp

14、----jsws

15、----python

16、----logo

17、----

18、man

19、----po

20、----libmosquitto

21、----mosquitto

22、----mosquitto.conf

23、----mosquitto_pub

24、----mosquitto_sub

25、----mosquitto-tls

26、----mqtt

27、----misc......

28、----currentcost

29、----gnome-panel

30、----security

31、----service

32、----monit

33、----svscan

34、----upstart

35、----src

36、----db_dump

37、----test

38、----broker

39、----c

40、

41、----lib

42、----c

43、----cpp

44、----python

45、----python3

46、----ssl

47、----demoCA

48、----rootCA

49、----signingCA所需关注的目录有/mosquitto-1.2/src、/mosquitto-1.2/lib、/mosquitto-1.2/client三个目录,其中src和lib目录下主要放置mosquitto的实现代码以及部分底层与网络相关的操作,client目录主要为两个客户端程序的实现源码。Mosquito的源码及其相关文档可从其官方网站获取,其官方网站为:http://mos

50、quitto.org/......mosquitto客户端和服务器运行命令[1]发布者客户端运行命令示例:./mosquitto_pub-h192.168.6.24

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。