文件名称:
基于MQTT协议IM的研究和实现.pdf
开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2019-09-14
详细说明:随着移动互联网和智能终端的发展与普及, IM(Instant messaging 即时通讯)再次成为一个炙手可热的领域. 由于移动终端设备在低功耗、低带宽等方面的限制, 对即时通讯协议提出了更高的要求. MQTT(MessageQueuing Telemetry Transport, 消息队列遥测传输)作为一种轻量级基于发布/订阅模式的消息传输协议, 是移动终端应用的理想选择. 介绍了MQTT 的基本内容和特点, 并与其他即时通讯协议SIMPLE 协议和XMPP 协议进行了对比, 从而提出一种基于MQTT 协议的移动终端即时通讯解决方案. 在Mosquitto 开源项目的基础上, 设计并实现了2015年第24卷第?期
http://www.c-s-a.org.cn
计算机系统应用
辑的相对独立,使」快速响应多样化的业务需求.其
移动M用户会订阅各种各样的话题,例如系统
整个客户端部分要分四个层次,第一层OS适配层,的广播通知,好友的上线提醒,好友发送的即时消息
负责适配各种不同旳操作系统;第二层是支撑层,捉同样用户也会取消某些话题的订阅.客户端通过
供协议栈、业务组件和基础能力的统一通信的接口, Mqttclient. SubscribleO方法向服务器订阅话题,服务
内部组件的交互米用标准协议完成.保证协议栈、业器进行相应的处理,并将与话题相关的消息采用
务组件的独立性和可扩展性,降低系统的耦合程度;JSON的方式推送给客户端.客户端收到后解析JSON
第三层为业务逻辑层.实现了客户端全套业务能力,数据,刷新显示界面.MQTT客户端订阅话题的流程
并允许未来利用现有业务逻辑进行全新的界面效果、图如图2所
业务能力扩展或业务重组,包括了即时通信,群组,4.2IM模块
通讯录等;第四层U表示层,提供了基本的核心界面
IM的功能主要包括:与通讯录中的好友进行IM
及窗口管理器的封装,通过与用户进行交互来完成各多终端IM消息的同步,离线终端IM消息的同步.另
种业务功能.整个系统的架构如图1所示
外,IM消息支持发送文字、图片、文件、音频等多种
媒体.
表示层
群组
状态呈现
4.2.1IM设计
吾视频
通讯录
会议
每个用户拥有一个IM的MQTT中的话题,每个
业运行状态控制rom会议A附‖轴
用户的每个终端均订阅该IM话题.在进行IM的时候
逻‖通讯录API音视频ATI
短信API
m∥助
层∥费
发送方向自己的MQTT话题发送对方的用户信息,
块
网终状态监控用户行为统计
MQTT客户端收到该订阅请求后,为双方所有己经使
层
用过得客户端均增加订阅话题.当用户有新终端接入
支撑层
TS0V數数据解析MTT消息解析|mTP
时,通过MQTT客户端进行会话信息的自动预订阅
为了降低IM消息交互的开销,对于所有IM消息的发
0s适配层A10Nr
送采用QoS=1,IM对应话题的订阅用QoS=1.对于
图1客户端系统架构图
IM类的消息,无须 retain
4.22 Payload设计
4主要功能模块的设计与实现
在IM类的消息中,对于 payload要考虑的类型比
41MQTT话题订阅
较多.由于IM类消息中传输的媒体类型比较多,例如
文本、图片、音频、超链接等.刈于文件的传输采用
Start
离线文件的方式,不在 payload中进行传输,上传结束
到断M连接、N
后将对应的下载链接( ITTPS/SFTP)在 payload进行传
重新连考MT服务
是否存在
输 Payload设计如表2
表2 IM Payload设计
删奪/添加订阅计
name
Sender
lype
Con-Ie
Content
byte
sen-en
con-len
接收MQTT服务器返
Sender:发送者消息,变长,可为空
回消息
TS:发送时的时间戳,4个字节,不可为空
判断是否成
通知操作失败
Type:媒体种类和消息类型,bit7-bit4表示IM消
息的类型,bit3-bit0表示同时携带媒体的种类,文本为
Y
停止/接收此话题
默认类型,一次一种媒体传输,不做复合媒体传输
息刷新界面
文件传输采用离线文件的方式,不在 payload中进行传
输,上传结束后将对应的下载链接在 payload进行传输
图2MQTT话题订阅
具体设计妇表3
pecial Issue专论综述11
计算机系统应用
http://www.c-s-a.org.cn
2015年第24卷第7期
表3Type详细设计
需荽发送大量消息订阅大量话题的时候.因此,客户
lype
Media count
端不需要)动订阅所有 presence相关的话题,其订阅
Bit7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2Bit I
过程可以通过服务器侧客户端的预订阅完成,减少网
Content-length:4个字节,表示后面携带的媒体内络上的数据交互
容的长度
43.2 Payload设计
Content:消息的内容,变长,最大为500k,结构
Payload由三部分组成,一个字节,设计如表4
是JSON字符串
表4 presence payload改计
IM发送和接收沇程如图3
T
Flag
Status
获取消息
Bit? Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit O
Type:表示基本状态或者详细状态.其移动客户
解杆息
端只有基本状杰:在线和离线
4.4群组模块
N
媒体类
是否发送>是否为纯
群组包括工作组(固定群组)和讨论组.工作组是
文本
包括预定义群组和自定义群组.预定义群组是由企业
Y
的管理员进行创建的,自定义群组是巾每个用户创建
MQTTClient. p
下载文件
1s
T作组主要功能有工作组成员管理、工作基本信
发送是否成功
消息存入复
息维护、工作组文件共亨、工作组解散与工作组转让、
合文档
工作组加入
讨论组是临时的群组.不氐有工作组的上述功能
窗口显示消根据消息吏新
是合有聊天
息发送失败界面和数据
讨论组的功能主要有创健、退出、添加成员、移除成
员等.讨论组是工作组操作的一个子集.
退出聊天K
4.4.l工作组设计与实现
图3IM消息发送与接受流程图
群组中的操作通知,由系统通知部分采用MQTT
话题的方式来实现,群组成员自动订阅此话题,有通
4.3 Presence模块
知消息时,自动发送纶群组成员.M采用MQTT的话
主要是对用广的各个终端的状态进行呈现.状态题的形式,群组成员自动订阅此话题.群组文件采用
是和终端类型相关联的.移动终端只有基本状态在线离线方式上传,群组临时文件有时间限制,最久为7
和离线.用户通过订阅好友的 Presence话题.每当被天,永久文件有大小限制,最大为500M.对于文件获
订阅者的状态发生变化时.客户端会向服务器相关话取,如果文件没有其他特殊限制,群组成员都可获取
题发布消息,服务器将消息推送给订阅者
4.4.1讨论组设计与实现
4.3.1 Presence设计
讨论组直接通过MQTT来完成,不对其进行统
每个用户均有一个关丁基木状态的MQTT中的话管理.创建者创建讨论组的话题,并发布对应的讨论
题,每个用户终端类型均需要订阅自己用户名下的组成员话题.讨论组成员自动订阅此话题.创建者以
状态话题,同时也需要订阅自己通信录好友的状态话及所有参与者可进行多人的IM.
题.只有用户在线时,才可接收到 Presence状态消息,
用户离线时,不会接收到 Presence状态消息.如果离5测试
线订阅者在连接成功后,可以将标记为 retain消息5.|IM流量测试对比
推送给订阅者.老虑到每次上线都由客户端来对这些
为了验证MQTT协议能更好的适应移动工联网,
话题进行订阅,不但会影响客户端的性能,还会占用将其MQI协议的实现与 SIMPLE和XMPP协议的实
移动终端较多的网络资源,尤其是在用户关系复杂,现分别进行测试,使用 Wire shark抓取数据包,分析数
12专论综述 Special Issue
2015年第24卷第?期
http://www.c-s-a.org.cn
计算机系统应用
据包,三种协议所消耗流量如图4所示,测试坯境如敔”在连接Wi的终端登录.两者互为好友关系,用户
下
“无敌”发送不同媒体类型的即时消息给用户“测试”
SIMPLE测试环境: opensips、 opencap、link;
用户“测试”也以同样的方式发送消息给用户“无敌”
XMPP测试环境: openfile、 spark;
这样就实现了用户之间的即时通信,终端显示效果如
MQTT测试环境:基于开源项目 mosquito的服务图6
器和 an droid客户端.
同时使用 WireShark数据包侦听和获取发出的数
据包,部分结果如图7所小
M流量对比
想来)))★★★
0.02K/s四令,20
23000
吴敌
150000
133000
你好
20406080100120140160180200
可以语音吗
图4三种协议所耗流量对比图
30
横轴表示发送消息的条数,每发送二十条文本消
息记录数据包大小,纵轴表小发送消息所需的流量,
N息
单位是宁节.从图中可看出: SIMPLE协议消耗流量最
多,XMPP协议其次,MQTT协议消耗流量最少
52功能测试
系统测试环境:2台 Andriod智能手机,数据服务
器,MQIT服务器,3G网络和wifi网络环境,2台
图6测试效果图
Δ ndriod智能手枳安装本程序,作为功能测试的终端,
Cecirstror
171160,420573
1.24612:.168.132。114
3.11171095:750tpih1s1(3)
测试发送消息时序如图5所示
1.1613132:181
1916131131112
137.16,13921
H11米191613:161m1升
t rane 2173: 12- bytes on wire (1016 bits), 127 byte: captured (1010 bitsy
用户测试
Broker
用户无敌
nnect
ar_leasr_nre. (11
CONAC
Connect
-CONACK
B0m3}25出氵计只4∵:“CE
-Pub Qos=l
Putrack
图7功能测试部分数据包
Pub qos=l
其中上半部分为用户测试和用户无敌之间互相发送消
aback
Puh Qos-1
息的数据包,中间部分为MQTT报文头首部填充内容
Puback
和 topic相关信息以及 payload,最后部分为发送消息
图5消息时序图
的内容
用户测试”在连接3G网络的终端登录,用户“无
专论综述13
计算机系统应用
http://www.c-s-a.org.cn
2015年第24卷第7期
6总结
2004,(2)
针对目前标准体系即时消息实现方案不能很好的适应4 Saint-Andre p. Extensible messaging and prcscncc protocol
移动网络低功耗、低带宽的特殊需求,本文采用基于 MQTT
(XMPP): Core. University of Helsinki Department of
协议的解次方案实现了即时通讯.文中研究了MQIT协议
Computer science, 2004
的结构、消息格式,重点介绍了各个功能实现中相关 payload
5 Saint-Andre P. Extensible messaging and presence protocol
的设计.实验结果表明,不同移动终端的用户可以实时,准
(XMPP): Instant messaging and presence, 2011
确的进行消息通信、并且MTT协议消耗流量较小,在功耗
6潘晓丰基于XMPP的全业IM的研究及实现[硕士学位论
和带宽方面能较好的适应栘动互联网.本文中的即时通信应
文]北京中国科学院计算技术饼究所,2006
用并不完善,尤其在安全性方面考虑不足,在未来工作中将
Ibm,Eurotech.mqtt3.1protOcolspecification.http://public
会侧重这方面的研究
dhe. ibm. com/software/dw/webservices/ws-mgtt/mqtt-v3rlht
m.[2010-08-24]
参考文献
8 Lee S, Kim H, Hong D, Ju H. Correlation analysis of MQTT loss
1Ibm.mqtElemetryTransport[2013-06-05].http://msqq.org
and delay according to Qos level. Information Networking
2 Campbell B, Rosenberg J, Schulzrinne H, Huitema C, Gurle
(ICOIN). Bangkok. 2013.
D. Session initiation protocol(sP) extension for instant9任亨基于MQTT协议的消息推送服务器计算机系统应
messaging. RFC, 2002
用,2014,23(3):77-82
3 Nicmi A. Scssion initiation protocol (SIP)extension for cvcnt
state publication. Networking Communication Engineering,
14专论综述 Special Issue
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.