CN113364671A - 节省流量电量的跨平台办公实时通讯系统 - Google Patents
节省流量电量的跨平台办公实时通讯系统 Download PDFInfo
- Publication number
- CN113364671A CN113364671A CN202110722111.3A CN202110722111A CN113364671A CN 113364671 A CN113364671 A CN 113364671A CN 202110722111 A CN202110722111 A CN 202110722111A CN 113364671 A CN113364671 A CN 113364671A
- Authority
- CN
- China
- Prior art keywords
- message
- thread
- subscription
- server
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 119
- 238000012545 processing Methods 0.000 claims abstract description 52
- 230000007246 mechanism Effects 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000000605 extraction Methods 0.000 claims abstract description 19
- 230000003993 interaction Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 15
- 239000012634 fragment Substances 0.000 claims description 13
- 230000002452 interceptive effect Effects 0.000 claims description 12
- 230000008520 organization Effects 0.000 claims description 12
- 230000000977 initiatory effect Effects 0.000 claims description 11
- 230000008901 benefit Effects 0.000 claims description 9
- 230000007547 defect Effects 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 3
- 238000013499 data model Methods 0.000 claims description 3
- 230000006872 improvement Effects 0.000 claims description 3
- 230000005611 electricity Effects 0.000 claims 4
- 238000012360 testing method Methods 0.000 description 23
- 238000013461 design Methods 0.000 description 15
- 230000001965 increasing effect Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000011056 performance test Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- 239000005441 aurora Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提出一种新的节省流量电量的跨平台办公实时通讯系统,一是基于PC端、移动端两个平台,融合单位及个人交互通讯录、任务协作、PC端及移动端即时消息会话,并在此基础上整合任务协作、即时消息、IP电话、多人会议模块,使员工更加高效、便捷的办公;二是针对移动端电量和网络受限的情况,提出基于MQTT协议推送+基于HTTP协议抽取的混合消息推送机制,改进移动端应用响应慢且电量与流量受限严重的现状;三是针对办公情景下实时通讯系统存在多异步任务的需求,提出改进的异步任务处理机制,修改线程池存储模式及线程预取,提高多线程处理性能,采用Handler+Looper+message queue的多线程通信模式,资源消耗更小。
Description
技术领域
本发明涉及一种跨平台办公实时通讯系统,特别涉及一种节省流量电量的跨平台办公实时通讯系统,属于跨平台办公实时通讯技术领域。
背景技术
随着网络技术的飞速发展,移动互联网的时代已经到来,网络用户数量激增,更多的人开始使用网络作为沟通交流媒介,参与到网际交流中来。因此,可实时进行文字、图片、音频和视频数据传输的即时通讯软件,颇受网络用户青睐,成为使用数量及频度最高的软件之一。在互联网的早期,人们在网络生活中交流的方式主要依赖BBS、E-mail等,虽然满足了数据快速、准确传输,却无法保证数据传输的实时性和有效性。即时通讯软件的出现,弥补了这一缺陷,QQ、微信、微博等软件在文字、图片、音频和视频信息传输过程中利用其较高的及时性和互动性,发挥着巨大作用。随着智能手机的快速发展,个人即时通讯软件已经培养了用户使用即时通讯的习惯,但其在娱乐、购物等方面功能的扩展,导致部分场景下被迫封掉个人即时通讯工具,从而催生了企业即时通讯需求的增长。因此,移动化的单位即时通讯产品是未来发展必不可少的趋势。
办公情景下的即时通讯是单位人员通过多类终端进行实时沟通的解决方案,单位人员通过文字、图片、语音及文件等多媒体形式信息的收发来实现实时沟通和团队协作的目的。与个人即时通信工具相比,单位即时通信工具剔除了娱乐、网购等模块,使单位员工更专注于工作,办公情景下的实时通讯系统更加强调安全性、实用性、稳定性和扩展性。
现有技术发布最早的互联网平台型企业实时通讯系统是易睦的IMO,该应用专注于单位内部的即时通讯及轻量级协同办公,不支持实时语音电话及多人会议等功能,腾讯先后推出多个版本的企业即时通讯服务,但企业QQ更多的是偏重客户的管理及单位品牌的运营,用户无法自创建群组,该应用不支持实时语音等业务。第一企信是一款专注于单位级的即时通讯工具,为企业、政府等机构提供了诸多融合通信解决方案。Avaya提出的企业通信解决方案,在语音视频会议模块尤为出色,但是服务器及终端的搭建极为复杂,使用并未普及。
由于XMPP协议复杂且冗余的设计,成为其在移动设备上的短板,如协议的复杂性带来其协议栈的耗电增加,冗余的设计使得网络流量大,用户成本增加;开源的XMPP服务器没有保证消息送达机制,对消息的到达率有较大的影响;最重要的是该方案无法向指定人群推送消息。
目前有很多第三方推送服务平台,如百度云推送、极光推送等,这些服务平台的推送技术大同小异,在服务质量上,这些推送服务平台由于其协议私有,传输效率和质量上无法量化和考证;其中只有部分平台免费,其他都是有免费和收费两种服务方式,且免费和收费在服务质量上存在较大差异。同时,很多厂商提供的消息服务区不具备公开性,导致应用可定制性降低,而且在用户数据安全性特别是服务器掌控方面存在问题。
现有技术的跨平台实时通讯系统存在缺陷和不足,本发明的难点和待解决的问题主要集中在以下方面:
第一,个人即时通讯软件在娱乐、购物等方面功能扩展迅速,导致部分场景下被迫封掉个人即时通讯工具,其使用受到条件的限制,从而催生了企业即时通讯需求的增长,但现有技术移动化的单位即时通讯产品存在明显短板,安全性、实用性、稳定性、扩展性都存在不足,不支持实时语音电话及多人会议等功能,用户无法自创建群组,不支持实时语音等业务,服务器及终端的搭建极为复杂,使用并未普及,协议复杂且冗余的设计,应用可定制性低,而且在用户数据安全性特别是服务器掌控方面存在问题;
第二,现有技术移动终端设备电量和网络受限严重,通讯系统的实时性低,消息推送效率较低,异步任务处理过程中系统响应超时的故障频繁,由于HTTP请求/应答方式的会话都是客户端发起,缺乏服务器通知客户端的机制,在需要通知的情景,客户端应用不断轮询服务器,在即时通讯情景下需要消息推送机制,由服务器端主动将消息传输至客户端,由于PC端和移动端各自特征不同,两者的推送技术也有明显差异,现有技术的Web应用大多是基于HTTP协议,但HTTP请求的数据包较大,会增加数据流量;如果轮询的时间间隔太短就会非常耗电、耗流量,如果时间间隔太长,则会导致消息数据的到达不够及时;现阶段异步任务处理常用的两种方法包括AsyncTask机制和基于Handler的多线程之间通信机制,其中,AsyncTask虽然代码简单,易于使用,但资源消耗比Handler机制更多,不适用于线程较多的情景;
第三,基于主题的发布订阅模型在逐级遍历主题树的过程中效率较低,尤其当订阅主题树较复杂或客户端个数较多时,基于主题的订阅发布模型效率明显降低,主题的管理和筛选需要耗费资源,描述精确和表达到位的订阅主题需要更复杂的匹配算法,反而降低系统性能,而且主题的表达能力有限,覆盖率也有限,无限的事件通过有限的主题来划分,其划分结果集粗糙模糊,如果订阅者找不到适合的主题,则只能靠增加订阅主题数量来获取足够的信息,发布者对事件进行主题划分时也存在多意性,特别是语义上的歧义会造成主题上的偏失;基于内容的发布订阅对内容的分析与统计需要更复杂的算法和统计模型,加大了系统的计算量,也不具备直接匹配主题的高效和精确,需通过重复增加主题关键词才能覆盖订阅者;
第四,安卓应用程序开发采用了UI单线程模型,处理数据库的写入和读取、或网络请求等耗时的操作时,都需要创建一个新的子线程来处理,以避免UI主线程的阻塞,现有模式的线程池存储方式,主要是多个工作线程做切换,多余的子线程放入缓存队列中,当有新的异步任务产生时,将创建新的子线程加入缓冲队列,如果工作线程个数及缓冲队列中线程个数已达到参数中的配置,则新的异步任务线程创建失败,系统无法及时做出响应,导致异步任务阻塞UI主线程,造成系统ANR异常,而且多个工作线程切换过程中也容易消耗系统资源;
第五,现存产品中办公实时通讯系统通讯录分组形式单一、不支持任务协作实时反馈、客户端比较臃肿,移动端电量和网络受限严重,办公情景下实时通讯系统存在多异步任务的需求,但现有技术异步任务处理机制无法满足需求,多线程处理性能弱,资源消耗很大,实时性、流量消耗及电量消耗无法满足实际应用需求,功能、适配性和性能都存在明显短板,在移动终端上运行不流畅。
发明内容
针对现有技术的不足,本发明提出的一种办公情景下基于MQTT协议的即时通讯解决方案,基于PC端、移动端APP两个平台,融合了单位及个人交互通讯录、任务协作、PC端及移动端即时消息会话、高品质多点语音通话功能,改进的关键技术包括MQTT协议、HTTP协议、数据库设计、移动客户端及PC客户端开发,针对办公情景下的实时通讯系统主要技术进行了优化,提出了HTTP抽取取+MQTT推送的混合消息推送机制,采用MQTT进行文本信息的推送,结合HTTP进行媒体文件的抽取,并且对MQTT的传统订阅与发布模式做了改进,提出了主题+内容的订阅发布模型,采用办公情景下异步任务处理的机制,加入线程池的修改以及线程预取功能,增强响应的实时性,提出办公情景下实时通讯系统的设计与实现,设计办公情景下实时通讯系统的框架,主要包括单位及个人交互通讯录模块、任务协作模块、即时消息模块、IP电话模块以及多点语音会议模块,提出各个模块的交互性设计、数据库设计、安卓客户端以及服务器端的设计实现。
为达到以上技术特征,本发明所采用的技术方案如下:
节省流量电量的跨平台办公实时通讯系统,基于PC端和移动端两大平台,融合单位及个人交互通讯录、任务协作、即时消息会话、IP电话、多人会议五个模块,主要包括三部分:一是基于现阶段市场上办公情景下实时通讯系统存在的缺陷和不足,提出一种全新的解决方案,融合单位通讯录及个人通讯录的交互通讯录模式,并在此基础上整合任务协作、即时消息、IP电话、多人会议模块;二是针对移动端电量和网络受限的情况,提出一种基于MQTT协议推送+基于HTTP协议抽取的混合消息推送机制,采用MQTT协议进行文本消息的推送,采用HTTP协议进行媒体文件的抽取,有效结合两种协议的优势,确保移动端应用响应及时而且节省电量与流量;三是针对办公情景下实时通讯系统存在多异步任务的需求,提出一种改进的异步任务处理机制,通过修改线程池存储模式及线程预取,提高多线程处理性能,采用Handler+Looper+messagequeue的多线程通信模式,资源消耗更小,解决方案满足办公情景下即时通讯需求,提出轻量级任务协作及交互通讯录模块,便于单位用户高效协同办公;
针对移动终端设备电量和网络受限的情况,以及实时通讯系统中对实时性的迫切需求,本发明提出一种MQTT推送+HTTP抽取的混合消息推送模式,改进MQTT协议进行文本消息的推送,并且改进HTTP协议进行视频、图片、音频多媒体文件的抽取,融合两种协议的优点,在满足实时性的基础上,大幅节省网络带宽和电量,更适用于移动端的应用;
通过对MQTT中传统订阅与发布模式的改进,提出基于内容与主题的订阅发布模式,使MQTT服务器更高效的进行消息推送,通过在多线程异步任务处理机制中修改线程池存储模式及线程预取,有效减少异步任务处理过程中,系统响应超时的故障。
节省流量电量的跨平台办公实时通讯系统,进一步的,本发明提出一种办公情景下基于改进MQTT协议的跨平台实时通讯系统,主要包括服务器端,移动端和PC端三大模块,其中服务器端主要包括处理业务逻辑的web服务器、用于推送消息的MQTT服务器、用于多媒体文件传输的HTTP文件服务器、用于数据读写的数据库服务器,PC端主要是PC端业务实现的PC客户端,进行消息订阅发布的MQTT PC客户端,通过网络与服务器相连接,移动端主要是安卓系统下的APP实现,用于消息发布订阅的MQTT安卓客户端,通过不同网络环境与服务器端进行通信以实现系统业务;本发明对办公情景下的推送模式进行了改进,提出MQTT推送+HTTP抽取的混合推拉模式,并且对MQTT的发布订阅模式进行改进,在保证消息推送实时性的基础上,有效节省带宽,在异步任务的耗时操作中,优化多线程处理,进一步提高系统的实时性;
办公情景下实时通讯混合推拉模式:基于办公情景下的即时通讯消息的特征,本发明提出一种混合消息推送模式,改进MQTT协议进行消息推送,当消息有更新时,服务器端主动将其推送到客户端,解析MQTT消息体,如果表明所传输为文本信息,则直接采用MQTT协议接收,如果消息体表明所传输为媒体文件时,则采用HTTP协议从服务器端抽取消息。
节省流量电量的跨平台办公实时通讯系统,进一步的,改进MQTT的文本信息推送:安卓客户端的消息推送采用MQTT协议,是基于订阅与发布模型的推送,客户端从MQTT服务器端订阅所需消息主题,MQTT服务器位于服务器端,主要分发推送消息,MQTT服务器通过订阅树的方式管理所有的订阅主题及客户端的订阅关系,订阅主题由用户自定义,子主题用“/”分开,使用通配符“#”或者“+”,每个用户可订阅多个主题,每个主题也可以被多个用户同时订阅,当MQTT服务器收到的消息主题与某订阅端的订阅主题一致时,将其分发给该订阅者,服务器端根据设计的主题,将消息准确分发到订阅该主题的客户端,所有设计的主题按照“/”分割并组织成一棵树结构,从根结点到树中每个结点即组成该结点所对应的一个主题,MQTT服务器通过订阅树的方式来管理所有的主题以及客户端的订阅关系;
MQTT服务器在启动时首先创建订阅树,包括主题订阅树总根结点、业务子树根结点和系统子树根结点,业务子树的根结点中topic成员的值为空字符串,从业务子树的根结点到树中的每个结点即组成该结点所对应的一个主题,每个主题都保存一个订阅列表,MQTT服务器收到推送消息后,根据其主题分发消息,遍历订阅树中每一级的根结点,直到查到对应的主题,将该消息发送给目标主题下的订阅列表;
MQTT服务器通过订阅树的方式管理所有的主题及客户端的订阅关系,首先将所有设计的主题按“/”分割并组织成一棵树结构,从根结点到树中每个结点即组成该结点对应的一个主题,每个主题保存一个订阅列表,该订阅列表中保存所有订阅当前主题的客户端信息。
节省流量电量的跨平台办公实时通讯系统,进一步的,改进HTTP的媒体文件抽取:办公情景下进行媒体文件收发,服务器端有数据更新时,MQTT服务器向客户端发起消息,提醒有新消息到达,然后客户端通过HTTP协议进行消息内容中媒体文件的抽取,既能在数据更新时第一时间通知用户,又能让用户通过请求-响应从服务器端抽取媒体文件;
发布端发布一条新消息,MQTT服务器进行消息分发,根据主题解析是否为此消息的订阅端,如果是,则通过MQTT协议将此消息通知订阅端,如果不是,则继续搜索订阅树,直至找到所对应的订阅端,当订阅端收到消息是,解析判断此消息中是否含有媒体文件信息,如果没有,则主动通过MQTT协议将消息体推送到订阅端;如果消息中含有媒体文件,则对客户端做出响应,客户端通过向服务器端发起HTTP请求,服务器端解析请求,并做出响应,然后客户端通过HTTP协议从服务器端抽取媒体文件,服务器端返回媒体文件所在地址,客户端从该地址下载每天文件,即完成了一条消息的推送。
节省流量电量的跨平台办公实时通讯系统,进一步的,预取驱动的异步任务处理机制:通过对线程池的存储模式进行改进,避免缓冲队列满,造成新任务无法创建的问题;
通过线程预取,利用网络空闲资源提前执行耗时操作,避免移动网络质量差的环境下,长时间无响应的问题,采用资源开销较小,更适用于多个任务协作的Handler+Looper+消息队列的多线程间通信模式,UI主线程创建子线程,子线程执行相关操作,完成时发送更新UI的消息到消息队列中,并通过Handler通知UI主线程进行界面更新。
节省流量电量的跨平台办公实时通讯系统,进一步的,改进线程池存储模式:将线程池改为一个工作线程以及一个无边界的先进先出队列,减少不同工作线程切换造成的资源消耗,而且不会由于队列满,而造成新的异步任务无法创建线程的情况。
节省流量电量的跨平台办公实时通讯系统,进一步的,线程预取:在系统空闲或者网络资源好时对数据库的写入和读取,网络请求等资源消耗成本高的数据进行预取,将预取数据保存到一个静态的Hashmap中,在移动设备网络流量受限,将预取网络数据缓存到SdCard或内存中,在访问时避免因网络条件差,而造成长时间卡顿,提高用户的交互体验,以及系统响应的即时性;
线程预取过程:首先UI主线程创建一个子线程,在线程预取过程中,创建一个工作线程,并将它的优先级设置为THREAD_PRIORITY_BACKGROUND,调用onPreExecute()、execute()、doInBackground()、onPostExecute()方法,对线程进行预取,并将其保存在静态哈希表中;
创建完后台预取的线程,通过一个实施例使用这个后台预取线程,实施例由两个Activity组成,LoginActivity是登陆界面,ContactFragment是办公情景下单位及个人通讯录模块,系统在登陆过程中对网络状态、SD卡信息、SIM卡信息、用户个人信息进行检测,这类耗时操作需要开启新线程处理,处理完成后,显示系统主页面,这时系统自动检测ContactFragment中是否有内容更新,如果存在通讯录更新,则系统后台先自动将其下载到本地,这样在使用单位及个人通讯录模块时,可直接从本机读取数据,而不是从系统服务器端通过网络进行下载,提高系统响应的实时性。
节省流量电量的跨平台办公实时通讯系统,进一步的,多线程实时通信:采用Looper+Handler+MessageQueue的方式完成UI主线程与子线程之间的通信,其中Handler需要在各个Activity中注册及初始化,负责创建消息,Looper由UI主线程创建,负责创建一个MessageQueue,每个线程只有一个Looper实例,同时一个Looper实例也只有一个MessageQueue,然后进入一个无限循环体不断从该MessageQueue中读取消息,每循环一次,从其内部的消息队列中取出一个消息,然后回调对应的消息处理函数,执行完成一个消息后则继续循环,如果消息队列为空,线程则阻塞等待。
节省流量电量的跨平台办公实时通讯系统,进一步的,本发明提出办公情景下实时通讯系统以单位及个人交互通讯录模块为核心,并且包括任务协作、即时消息、IP电话及多人会议模块,准确满足用户办公情景下的需求;
通讯录模块包括保存于服务器端的单位通讯录,以及用户本机的个人通讯录;任务模块以单位通讯录中组织结构树为依托来完成多人的任务协作,包括发起任务、接收任务、修改任务、对任务进行反馈和统计;即时消息模块以单位通讯录中组织结构树为依托完成点多点以及点对多的文字、语音、视频、文件多媒体信息的通信;IP电话模块是当用户处在单位内部网络时,通过内部网络对单位通讯录内任意对象发起IP电话,当用户不在单位内网时,通过运营商发起通话;会议模块是当用户需要发起多人语音或者视频会议时,利用系统发起会议的创建。
节省流量电量的跨平台办公实时通讯系统,进一步的,安卓客户端设计实现:安卓客户端分为多层框架,其中主要包括视图层、控制层、模型层、Handler、线程以及网络请求层,其中视图层包括应用程序涉及到的所有页面XML布局文件,控制层包括所有页面的逻辑跳转以及按钮点击动作等,模型层包括数据模型以及上层数据访问接口,网络请求主要是将请求解析为JSON字段,PersonThread作为主要是处理通讯录更新下载等耗时操作,避免系统主进程长时间无响应,Handler负责为界面主线程与子线程之间的通信,每一个任务创建一个新的线程,通过PersonThread执行相关请求,并传递消息,当系统返回消息为success时,Handler实例向UI线程发送消息,通知主界面线程进行更新;
安卓客户端代码主要分为adapter、layout、Activity、fragment、utils五部分,其中layout中存放安卓应用所对应的页面布局文件,定义各个页面的样式、颜色、风格以及控件。adapter则对应绑定一个UI界面中的所有控件及其所需填充的数据来源,生成对应的适配器;Activity则是控制每个业务界面中发生的事件及增删改查操作进行节目更新,fragment独立于Activity,包括ChatFragment、TaskFragment、ContactFragment、MeetingFragment、PhoneFragment,通过侧滑加载不同模块的主页面。
与现有技术相比,本发明的贡献和创新点在于:
第一,个人即时通讯软件在娱乐、购物等方面功能的扩展迅速,导致部分场景下被迫封掉个人即时通讯工具,催生了企业即时通讯需求的增长,移动化的单位即时通讯产品是未来发展必不可少的趋势,本发明办公情景下的即时通讯是单位人员通过多类终端进行实时沟通的解决方案,与个人即时通信工具相比,单位即时通信工具剔除了娱乐、网购等模块,使单位员工更专注于工作,本发明更加强调安全性、实用性、稳定性和扩展性,是一种办公情景下节省流量电量的跨平台实时通讯解决方案,基于PC端和移动端两大平台,融合单位及个人交互通讯录、任务协作、即时消息会话、IP电话、多人会议五个模块,提出轻量级任务协作及交互通讯录模块,更便于单位用户高效协同办公;
第二,针对移动终端设备电量和网络受限的情况,以及实时通讯系统中对实时性的迫切需求,本发明提出一种MQTT推送+HTTP抽取的混合消息推送模式,改进MQTT协议进行文本消息的推送,并且改进HTTP协议进行视频、图片、音频多媒体文件的抽取,融合两种协议的优点,在满足实时性的基础上,大幅节省网络带宽和电量,更加适用于移动端的应用;
第三,通过对MQTT中传统订阅与发布模式的改进,提出基于内容与主题的订阅发布模式,使MQTT服务器更高效的进行消息推送,通过在多线程异步任务处理机制中修改线程池存储模式及线程预取,有效减少异步任务处理过程中,系统响应超时的故障。对混合推拉机制的实时性、流量消耗及电量消耗进行测试,在4G/5G/WiFi不同的网络情况下进行时延测试,在针对办公情景下实时通讯系统中文本与媒体文件混合的消息推送中,在保证推送实时性的情况下,有效降低了流量和电量的消耗。在安卓客户端做了功能测试、适配性测试和性能测试,在不同分辨率及屏幕密度的移动终端上流畅响应;
第四,针对办公情景下的实时通讯系统提出一种HTTP抽取+MQTT推送的混合消息推送机制,采用MQTT进行文本信息的推送,结合HTTP进行媒体文件的抽取,并对MQTT的订阅与发布模式进行改进,提出主题+内容的订阅发布模型,最后基于办公情景下异步任务处理机制,加入线程池的修改以及线程预取,增强响应的实时性;本发明采用一种改进的线程池存储方法,将线程池改为一个工作线程以及一个无边界的先进先出队列,减少不同工作线程切换造成的资源消耗,而且不会由于队列满,而造成新的异步任务无法创建线程的情况;
第五,本发明办公情景下实时通讯系统以单位及个人交互通讯录模块为核心,交互通讯录模块保障新员工通过清晰的组织架构,快速了解公司构成与人员,快速找到所需人员;即时消息模块满足办公情景下点对点的即时消息、基本群组的即时消息及跨部门的自定义群组消息需求;IP电话模块通过联络对象的网络状态,智能选择所使用的通信通道;多人会议模块提供快速的信息传递平台,为单位内部跨部门协作及客户产品演示带来便捷,系统管理员通过PC客户端对通讯录中的组织结构树进行增加、修改或删除操作,普通用户通过组织结构树中的各部门划分查找所需联系的对象,操作更直观快捷,即时消息和会议模块功能与移动客户端一致,实现同时与服务器的互通互联。
附图说明
图1是办公情景下基于改进MQTT协议的跨平台实时通讯系统框架图。
图2是本发明的MQTT服务器的主题订阅树结构示意图。
图3是本发明改进HTTP的媒体文件抽取示意图。
图4是本发明的异步任务处理框架图。
图5是本发明的多线程实时通信模式示意图。
图6是跨平台办公实时通讯系统的业务框架图。
具体实施方法
下面结合附图,对本发明提供的节省流量电量的跨平台办公实时通讯系统的技术方案进行进一步的描述,使本领域的技术人员能够更好的理解本发明并能予以实施。
移动互联网的飞速发展及智能终端设备的大规模普及,使人们的沟通方式发生了巨大变化,集语音、文本、资讯、娱乐、视频、电子商务为一体的即时通讯应用层出不穷。但在办公情景下,大部分单位依然依靠传统OA系统及微信、QQ等工具,来构成单位内的通讯体系。因此,办公情景下实时通讯系统在移动互联网中有前景巨大。
本发明基于现存产品存在的问题和缺陷,提出一种办公情景下节省流量电量的跨平台实时通讯解决方案,基于PC端和移动端两大平台,融合单位及个人交互通讯录、任务协作、即时消息会话、IP电话、多人会议五个模块,解决方案满足办公情景下即时通讯需求,提出轻量级任务协作及交互通讯录模块,更便于单位用户高效协同办公。
针对移动终端设备电量和网络受限的情况,以及实时通讯系统中对实时性的迫切需求。本发明提出一种MQTT推送+HTTP抽取的混合消息推送模式,改进MQTT协议进行文本消息的推送,并且改进HTTP协议进行视频、图片、音频多媒体文件的抽取,融合两种协议的优点,在满足实时性的基础上,大幅节省网络带宽和电量,更加适用于移动端的应用。
通过对MQTT中传统订阅与发布模式的改进,提出基于内容与主题的订阅发布模式,使MQTT服务器更高效的进行消息推送,通过在多线程异步任务处理机制中修改线程池存储模式及线程预取,有效减少异步任务处理过程中,系统响应超时的故障。
最后,对混合推拉机制的实时性、流量消耗及电量消耗进行测试,在4G/5G/WiFi不同的网络情况下进行时延测试。结果表明,在针对办公情景下实时通讯系统中文本与媒体文件混合的消息推送中,在保证推送实时性的情况下,有效降低了流量和电量的消耗。在安卓客户端做了功能测试、适配性测试和性能测试,该应用能在不同分辨率及屏幕密度的移动终端上流畅响应。
一、消息推送与异步任务处理
由于实时通讯系统对消息收发实时性的要求,需要在消息到达时及时提醒用户,并且减少耗时操作,响应及时,让用户体验流畅,采用消息推送技术及多线程下异步任务处理。
由于HTTP请求/应答方式的会话都是客户端发起,缺乏服务器通知客户端的机制,在需要通知的情景,客户端应用不断轮询服务器,在即时通讯情景下需要消息推送机制,由服务器端主动将消息传输至客户端。消息推送针对Web或者移动端应用开发领域,与原本客户端主动请求,服务端返回请求结果不同,消息推送是服务端以主动方式将信息送达客户端,主要用于提升用户体验,避免用户刷新页面从服务端抽取数据。由于PC端和移动端各自特征不同,两者的推送技术也有明显差异。
现有技术的Web应用大多是基于HTTP协议,但HTTP请求的数据包较大,会增加数据流量;如果轮询的时间间隔太短就会非常耗电、耗流量,如果时间间隔太长,则会导致消息数据的到达不够及时。
办公情景下实时通讯系统解决方案的框架主要包括服务器、PC客户端及移动客户端中需要使用到的核心技术,现有技术的消息推送协议包括基于HTTP协议的轮询抽取机制和基于MQTT协议的推送机制,两者各有优缺点,适用情景不同。现阶段异步任务处理常用的两种方法包括AsyncTask机制和基于Handler的多线程之间通信机制,其中,AsyncTask虽然代码简单,易于使用,但资源消耗比Handler机制更多,不适用于线程较多的情景。
二、节省流量电量的办公实时通讯系统优化
本发明提出一种办公情景下基于改进MQTT协议的跨平台实时通讯系统,主要包括服务器端,移动端和PC端三大模块,如图1所示,其中服务器端主要包括处理业务逻辑的web服务器、用于推送消息的MQTT服务器、用于多媒体文件传输的HTTP文件服务器、用于数据读写的数据库服务器,PC端主要是PC端业务实现的PC客户端,进行消息订阅发布的MQTT PC客户端,通过网络与服务器相连接,移动端主要是安卓系统下的APP实现,用于消息发布订阅的MQTT安卓客户端,通过不同网络环境与服务器端进行通信以实现系统业务。
本发明对办公情景下的推送模式进行了改进,提出MQTT推送+HTTP抽取的混合推拉模式,并且对MQTT的发布订阅模式进行改进,在保证消息推送实时性的基础上,有效节省带宽,在异步任务的耗时操作中,优化多线程处理做,进一步提高系统的实时性。
(一)办公情景下实时通讯混合推拉模式
办公情景下的实时通讯系统中进行视频、文本、图片、音频、文件媒体文件的收发,及任务的协作,对实时性要求高,要求系统能在较短的时间里处理通信双方的请求,并使得接收方能尽快获得数据,如果单独使用HFFP协议对服务器端进行轮询,HTTP请求的数据包大,会增加数据流量;如果轮询的时间间隔太短就会非常耗电和耗流量,如果时间间隔太长,则会导致消息数据到达不及时。因此单独使用HTTP协议的消息推送既增加了系统资源消耗,又给服务器端带来不必要的压力,不适用于办公情景下实时通讯系统。如果单独使用MQTT协议,订阅发布模式的消息收发,减少了客户端与服务器端维持连接的数据包收发,且MQTT消息体较短,更加节省电量和流量,减轻了消息发送端设备和网络压力,更加适合移动端电量和网络受限的情况,但MQTT以字符数组的形式传递数据内容,如果消息内容本身为媒体文件,则完全削弱了MQTT协议本身的优势。针对办公情景下的即时通讯消息的特征,本发明提出一种混合消息推送模式,改进MQTT协议进行消息推送,当消息有更新时,服务器端主动将其推送到客户端,解析MQTT消息体,如果表明所传输为文本信息,则直接采用MQTT协议接收,如果消息体表明所传输为媒体文件时,则采用HTTP协议从服务器端抽取消息。
1、改进MQTT的文本信息推送
(1)基于主题的订阅发布模型
本发明安卓客户端的消息推送采用MQTT协议,是基于订阅与发布模型的推送,客户端从MQTT服务器端订阅所需消息主题,MQTT服务器位于服务器端,主要分发推送消息,MQTT服务器通过订阅树的方式管理所有的订阅主题及客户端的订阅关系,订阅主题由用户自定义,子主题用“/”分开,使用通配符“#”或者“+”,每个用户可订阅多个主题,每个主题也可以被多个用户同时订阅,当MQTT服务器收到的消息主题与某订阅端的订阅主题一致时,将其分发给该订阅者,服务器端根据设计的主题,将消息准确分发到订阅该主题的客户端,所有设计的主题按照“/”分割并组织成一棵树结构,从根结点到树中每个结点即组成该结点所对应的一个主题,MQTT服务器通过订阅树的方式来管理所有的主题以及客户端的订阅关系。
MQTT服务器在启动时首先创建订阅树,如图2所示,包括主题订阅树总根结点、业务子树根结点和系统子树根结点,业务子树的根结点中topic成员的值为空字符串,从业务子树的根结点到树中的每个结点即组成该结点所对应的一个主题,每个主题都保存一个订阅列表,MQTT服务器收到推送消息后,根据其主题分发消息,遍历订阅树中每一级的根结点,直到查到对应的主题,将该消息发送给目标主题下的订阅列表;
MQTT服务器通过订阅树的方式管理所有的主题及客户端的订阅关系,首先将所有设计的主题按“/”分割并组织成一棵树结构,从根结点到树中每个结点即组成该结点对应的一个主题,每个主题保存一个订阅列表,该订阅列表中保存所有订阅当前主题的客户端信息。
(2)基于主题+内容的订阅发布模型
虽然基于主题的发布订阅模型逻辑清楚,但在逐级遍历主题树的过程中效率较低,尤其当订阅主题树较复杂或客户端个数较多时,基于主题的订阅发布模型效率明显降低。主题的管理和筛选需要耗费资源,描述精确和表达到位的订阅主题需要更复杂的匹配算法,反而降低系统性能,而且主题的表达能力有限,覆盖率也有限,无限的事件通过有限的主题来划分,其划分结果集粗糙模糊,如果订阅者找不到适合的主题,则只能靠增加订阅主题数量来获取足够的信息,发布者对事件进行主题划分时也存在多意性,特别是语义上的歧义会造成主题上的偏失。
基于内容的发布订阅使订阅者依据事件消息的内容分析表达订阅,MQTT服务器在消息分发时,不需要逐级遍历整个主题订阅树,能节省算法匹配带来的资源消耗,基于内容的订阅模型的表达能力比基于主题的严格匹配表达能力强,减少了重复订阅的可能性,也避免系统重复推送多余事件,能降低系统损耗和节约网络带宽,使用基于内容的发布订阅模式更灵活、更人性化、更智能,能大幅节省系统损耗和网络资源。但对内容的分析与统计需要更复杂的算法和统计模型,加大了系统的计算量,也不具备直接匹配主题的高效和精确,需通过重复增加主题关键词才能覆盖订阅者。
2、改进HTTP的媒体文件抽取
办公情景下进行媒体文件收发,服务器端有数据更新时,MQTT服务器向客户端发起消息,提醒有新消息到达,然后客户端通过HTTP协议进行消息内容中媒体文件的抽取,既能在数据更新时第一时间通知用户,又能让用户通过请求-响应从服务器端抽取媒体文件,如图3所示,。
发布端发布一条新消息,MQTT服务器进行消息分发,根据主题解析是否为此消息的订阅端,如果是,则通过MQTT协议将此消息通知订阅端,如果不是,则继续搜索订阅树,直至找到所对应的订阅端,当订阅端收到消息是,解析判断此消息中是否含有媒体文件信息,如果没有,则主动通过MQTT协议将消息体推送到订阅端;如果消息中含有媒体文件,则对客户端做出响应,客户端通过向服务器端发起HTTP请求,服务器端解析请求,并做出响应,然后客户端通过HTTP协议从服务器端抽取媒体文件,服务器端返回媒体文件所在地址,客户端从该地址下载每天文件,即完成了一条消息的推送。
(二)预取驱动的异步任务处理机制
异步任务处理中常用的AsyncTask技术,系统资源开销大,且容易造成移动设备响应过慢,出现假死现象。因此本发明通过对线程池的存储模式进行改进,避免缓冲队列满,造成新任务无法创建的问题。另外,通过线程预取,合理利用网络空闲资源提前执行耗时操作,避免移动网络质量差的环境下,长时间无响应的问题。最后,采用资源开销较小,更适用于多个任务协作的Handler+Looper+消息队列的多线程间通信模式,UI主线程创建子线程,子线程执行相关操作,完成时发送更新UI的消息到消息队列中,并通过Handler通知UI主线程进行界面更新。异步任务处理框架如图4所示。
1、改进线程池存储模式
安卓应用程序开发采用了UI单线程模型,处理数据库的写入和读取、或网络请求等耗时的操作时,都需要创建一个新的子线程来处理,以避免UI主线程的阻塞,系统创建的多个子线程放入线程池中,现有模式的线程池存储方式,主要是多个工作线程做切换,多余的子线程放入缓存队列中,当有新的异步任务产生时,将创建新的子线程加入缓冲队列,如果工作线程个数及缓冲队列中线程个数已达到参数中的配置,则新的异步任务线程创建失败,系统无法及时做出响应,因此导致异步任务阻塞UI主线程,造成系统ANR异常,而且多个工作线程切换过程中也容易消耗系统资源。
因此,本发明采用一种改进的线程池存储方法,将线程池改为一个工作线程以及一个无边界的先进先出队列,减少不同工作线程切换造成的资源消耗,而且不会由于队列满,而造成新的异步任务无法创建线程的情况。
2、线程预取
在系统空闲或者网络资源好时对数据库的写入和读取,网络请求等资源消耗成本高的数据进行预取,将预取数据保存到一个静态的Hashmap中,在移动设备网络流量受限,将预取网络数据缓存到SdCard或内存中,在访问时避免因网络条件差,而造成长时间卡顿,提高用户的交互体验,以及系统响应的即时性。
线程预取过程:首先UI主线程创建一个子线程,在线程预取过程中,创建一个工作线程,并将它的优先级设置为THREAD_PRIORITY_BACKGROUND,调用onPreExecute()、execute()、doInBackground()、onPostExecute()方法,对线程进行预取,并将其保存在静态哈希表中。
创建完后台预取的线程。通过一个实施例使用这个后台预取线程,实施例由两个Activity组成,LoginActivity是登陆界面,ContactFragment是办公情景下单位及个人通讯录模块,系统在登陆过程中对网络状态、SD卡信息、SIM卡信息、用户个人信息进行检测,这类耗时操作需要开启新线程处理,处理完成后,显示系统主页面,这时系统自动检测ContactFragment中是否有内容更新,如果存在通讯录更新,则系统后台先自动将其下载到本地,这样在使用单位及个人通讯录模块时,可直接从本机读取数据,而不是从系统服务器端通过网络进行下载,这种后台预取的过程,大幅减少了网络受限情况下,因数据下载而造成的延时,提高了系统响应的实时性。
3、多线程实时通信
本发明采用Looper+Handler+MessageQueue的方式完成UI主线程与子线程之间的通信,其中Handler需要在各个Activity中注册及初始化,负责创建消息,Looper由UI主线程创建,负责创建一个MessageQueue,每个线程只有一个Looper实例,同时一个Looper实例也只有一个MessageQueue,然后进入一个无限循环体不断从该MessageQueue中读取消息,每循环一次,从其内部的消息队列中取出一个消息,然后回调对应的消息处理函数,执行完成一个消息后则继续循环,如果消息队列为空,线程则阻塞等待。通信模式如图5所示。
以办公情景下即时通信系统任务协作模块中,安卓端发起任务界面,TaskAddActivity在UI主线程中创建一个Looper实例,该Looper实例创建一个注册一个MessageQueue,在任务保存的过程中,因为存在附件上传的耗时操作,需要开启一个子线程来执行,在子线程中注册一个Handler并对此Handler进行初始化,则在子线程执行完成后,Handler发送一个消息给MessageQueue,主线程中的Looper通过loop()函数进行循环,每循环一次从messageQueue中取出一条消息,如果该消息回调至主线程,体现UI主线程进行页面更新,则UI主线程进行界面更新。
针对办公情景下的实时通讯系统提出一种HTTP抽取+MQTT推送的混合消息推送机制,采用MQTT进行文本信息的推送,结合HTTP进行媒体文件的抽取,并对MQTT的订阅与发布模式进行改进,提出主题+内容的订阅发布模型,最后基于办公情景下异步任务处理机制,加入线程池的修改以及线程预取,增强响应的实时性。
三、系统设计实现
(一)系统结构设计
针对现存产品中通讯录分组形式单一、不支持任务协作实时反馈等缺陷,本发明提出办公情景下实时通讯系统以单位及个人交互通讯录模块为核心,并且包括任务协作、即时消息、IP电话及多人会议模块,准确满足用户办公情景下的需求。系统业务框架如图6所示。
通讯录模块包括保存于服务器端的单位通讯录,以及用户本机的个人通讯录;任务模块以单位通讯录中组织结构树为依托来完成多人的任务协作,包括发起任务、接收任务、修改任务、对任务进行反馈和统计;即时消息模块以单位通讯录中组织结构树为依托完成点多点以及点对多的文字、语音、视频、文件多媒体信息的通信;IP电话模块是当用户处在单位内部网络时,通过内部网络对单位通讯录内任意对象发起IP电话,当用户不在单位内网时,通过运营商发起通话;会议模块是当用户需要发起多人语音或者视频会议时,利用系统发起会议的创建。
(二)服务器端设计实现
服务器端包括web服务器、HTTP文件服务器、MQTT服务器、数据库四大模块,其中MQTT服务器负责向PC端以及移动端提供消息推送服务,HTTP文件服务器在用户发起HTTP请求时,传输文件、视频、图片多媒体类型文件,web服务器负责处理移动端及PC端业务逻辑请求,数据库负责数据相关增删改查操作。
(三)安卓客户端设计实现
安卓客户端分为多层框架,其中主要包括视图层、控制层、模型层、Handler、线程以及网络请求层,其中视图层包括应用程序涉及到的所有页面XML布局文件,控制层包括所有页面的逻辑跳转以及按钮点击动作等,模型层包括数据模型以及上层数据访问接口,网络请求主要是将请求解析为JSON字段,PersonThread作为主要是处理通讯录更新下载等耗时操作,避免系统主进程长时间无响应,Handler负责为界面主线程与子线程之间的通信,每一个任务创建一个新的线程,通过PersonThread执行相关请求,并传递消息,当系统返回消息为success时,Handler实例向UI线程发送消息,通知主界面线程进行更新。
安卓客户端代码主要分为adapter、layout、Activity、fragment、utils五部分,其中layout中存放安卓应用所对应的页面布局文件,定义各个页面的样式、颜色、风格以及控件。adapter则对应绑定一个UI界面中的所有控件及其所需填充的数据来源,生成对应的适配器。Activity则是控制每个业务界面中发生的事件及增删改查操作进行节目更新,fragment独立于Activity,包括ChatFragment、TaskFragment、ContactFragment、MeetingFragment、PhoneFragment,通过侧滑加载不同模块的主页面。
本发明提出办公情景下实时通讯系统的框架,主要包括服务器端,移动端以及PC端三大模块,其中服务器端包括负责业务处理的web服务器、用于推送消息的MQTT服务器,用于多媒体文件传输的HTTP文件服务器,发起语音视频会议的会议服务器;PC端主要包括MQTTPC客户端和系统PC客户端;移动端包括MQTT安卓客户端,以及安卓客户端。
办公情景下实时通讯系统以单位及个人交互通讯录模块为核心,并且包括任务协作、即时消息、IP电话和多人会议模块,其中交互通讯录模块保障新员工通过清晰的组织架构,快速了解公司构成与人员,快速找到所需人员;即时消息模块满足办公情景下点对点的即时消息、基本群组的即时消息及跨部门的自定义群组消息需求;IP电话模块通过联络对象的网络状态,智能选择所使用的通信通道;多人会议模块提供快速的信息传递平台,为单位内部跨部门协作及客户产品演示带来便捷。
安卓客户端主要包括安卓客户端系统框架和界面交互以及异步任务和消息推送机制处理,服务器端主要包括多个模块的架构,不同模块通信的接口设计。
四、发明点总结与测试
针对现阶段市场上办公情景下实时通讯系统产品存在无法任务协作、没有交互通讯录、客户端比较臃肿等问题,提出一种新的办公情景下跨平台的即时通讯解决方案,基于PC端、移动端两个平台,融合单位及个人交互通讯录、任务协作、PC端及移动端即时消息会话、高品质多点语音通话功能。本发明采用的关键技术包括MQTT协议、HTTP文件服务器、数据库设计、移动客户端和PC客户端开发。
本发明的主要包括三部分:一是基于现阶段市场上办公情景下实时通讯系统存在的缺陷和不足,提出一种全新的解决方案,融合单位通讯录及个人通讯录的交互通讯录模式,并在此基础上整合任务协作、即时消息、IP电话、多人会议模块,使员工更加高效、便捷的办公;二是针对移动端电量和网络受限的情况,提出一种基于MQTT协议推送+基于HTTP协议抽取的混合消息推送机制,采用MQTT协议进行文本消息的推送,采用HTTP协议进行媒体文件的抽取,有效结合两种协议的优势,共同改进移动端应用响应慢而且电量与流量受限的现状;三是针对办公情景下实时通讯系统存在多异步任务的需求,提出一种改进的异步任务处理机制,通过修改线程池存储模式及线程预取,提高多线程处理性能,采用Handler+Looper+messagequeue的多线程通信模式,资源消耗更小。
利用办公情景下实时通讯系统的设计与实现,对各个模块测试,其中包括消息推送性能测试、移动客户端测试和PC客户端的测试,MQTT推送性能测试主要分为一个发布端及多个订阅端的测试,以及一个订阅端多个发布端的测试,其中消息质量Qos不同时,推送成功率不同,消息实际qos是根据发布客户端和订阅客户端两者中设置的qos值较小的一方确定的。移动客户端测试包括适配性测试,功能性测试和性能测试,其中适配性测试是在分辨率及尺寸不同的几款机型上进行,检查客户端在颜色及外观、尺寸上是否符合客户使用习惯,功能测试对系统的五大模块进行逐一测试,验证其功能是否完整;性能测试对客户端的耗电、占用内存大小、不同网络环境下的任务和消息收发时延及成功率进行检验。PC客户端测试是针对PC端的通讯录、即时消息和会议三大业务进行测试,系统管理员通过PC客户端对通讯录中的组织结构树进行增加、修改或删除操作;普通用户通过组织结构树中的各部门划分查找所需联系的对象,操作更直观快捷。即时消息和会议模块功能与移动客户端一致,实现同时与服务器的互通互联。
Claims (10)
1.节省流量电量的跨平台办公实时通讯系统,其特征在于,基于PC端和移动端两大平台,融合单位及个人交互通讯录、任务协作、即时消息会话、IP电话、多人会议五个模块,主要包括三部分:一是基于现阶段市场上办公情景下实时通讯系统存在的缺陷和不足,提出一种全新的解决方案,融合单位通讯录及个人通讯录的交互通讯录模式,并在此基础上整合任务协作、即时消息、IP电话、多人会议模块;二是针对移动端电量和网络受限的情况,提出一种基于MQTT协议推送+基于HTTP协议抽取的混合消息推送机制,采用MQTT协议进行文本消息的推送,采用HTTP协议进行媒体文件的抽取,有效结合两种协议的优势,确保移动端应用响应及时而且节省电量与流量;三是针对办公情景下实时通讯系统存在多异步任务的需求,提出一种改进的异步任务处理机制,通过修改线程池存储模式及线程预取,提高多线程处理性能,采用Handler+Looper+messagequeue的多线程通信模式,资源消耗更小,解决方案满足办公情景下即时通讯需求,提出轻量级任务协作及交互通讯录模块,便于单位用户高效协同办公;
针对移动终端设备电量和网络受限的情况,以及实时通讯系统中对实时性的迫切需求,本发明提出一种MQTT推送+HTTP抽取的混合消息推送模式,改进MQTT协议进行文本消息的推送,并且改进HTTP协议进行视频、图片、音频多媒体文件的抽取,融合两种协议的优点,在满足实时性的基础上,大幅节省网络带宽和电量,更适用于移动端的应用;
通过对MQTT中传统订阅与发布模式的改进,提出基于内容与主题的订阅发布模式,使MQTT服务器更高效的进行消息推送,通过在多线程异步任务处理机制中修改线程池存储模式及线程预取,有效减少异步任务处理过程中,系统响应超时的故障。
2.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,本发明提出一种办公情景下基于改进MQTT协议的跨平台实时通讯系统,主要包括服务器端,移动端和PC端三大模块,其中服务器端主要包括处理业务逻辑的web服务器、用于推送消息的MQTT服务器、用于多媒体文件传输的HTTP文件服务器、用于数据读写的数据库服务器,PC端主要是PC端业务实现的PC客户端,进行消息订阅发布的MQTT PC客户端,通过网络与服务器相连接,移动端主要是安卓系统下的APP实现,用于消息发布订阅的MQTT安卓客户端,通过不同网络环境与服务器端进行通信以实现系统业务;本发明对办公情景下的推送模式进行了改进,提出MQTT推送+HTTP抽取的混合推拉模式,并且对MQTT的发布订阅模式进行改进,在保证消息推送实时性的基础上,有效节省带宽,在异步任务的耗时操作中,优化多线程处理,进一步提高系统的实时性;
办公情景下实时通讯混合推拉模式:基于办公情景下的即时通讯消息的特征,本发明提出一种混合消息推送模式,改进MQTT协议进行消息推送,当消息有更新时,服务器端主动将其推送到客户端,解析MQTT消息体,如果表明所传输为文本信息,则直接采用MQTT协议接收,如果消息体表明所传输为媒体文件时,则采用HTTP协议从服务器端抽取消息。
3.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,改进MQTT的文本信息推送:安卓客户端的消息推送采用MQTT协议,是基于订阅与发布模型的推送,客户端从MQTT服务器端订阅所需消息主题,MQTT服务器位于服务器端,主要分发推送消息,MQTT服务器通过订阅树的方式管理所有的订阅主题及客户端的订阅关系,订阅主题由用户自定义,子主题用“/”分开,使用通配符“#”或者“+”,每个用户可订阅多个主题,每个主题也可以被多个用户同时订阅,当MQTT服务器收到的消息主题与某订阅端的订阅主题一致时,将其分发给该订阅者,服务器端根据设计的主题,将消息准确分发到订阅该主题的客户端,所有设计的主题按照“/”分割并组织成一棵树结构,从根结点到树中每个结点即组成该结点所对应的一个主题,MQTT服务器通过订阅树的方式来管理所有的主题以及客户端的订阅关系;
MQTT服务器在启动时首先创建订阅树,包括主题订阅树总根结点、业务子树根结点和系统子树根结点,业务子树的根结点中topic成员的值为空字符串,从业务子树的根结点到树中的每个结点即组成该结点所对应的一个主题,每个主题都保存一个订阅列表,MQTT服务器收到推送消息后,根据其主题分发消息,遍历订阅树中每一级的根结点,直到查到对应的主题,将该消息发送给目标主题下的订阅列表;
MQTT服务器通过订阅树的方式管理所有的主题及客户端的订阅关系,首先将所有设计的主题按“/”分割并组织成一棵树结构,从根结点到树中每个结点即组成该结点对应的一个主题,每个主题保存一个订阅列表,该订阅列表中保存所有订阅当前主题的客户端信息。
4.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,改进HTTP的媒体文件抽取:办公情景下进行媒体文件收发,服务器端有数据更新时,MQTT服务器向客户端发起消息,提醒有新消息到达,然后客户端通过HTTP协议进行消息内容中媒体文件的抽取,既能在数据更新时第一时间通知用户,又能让用户通过请求-响应从服务器端抽取媒体文件;
发布端发布一条新消息,MQTT服务器进行消息分发,根据主题解析是否为此消息的订阅端,如果是,则通过MQTT协议将此消息通知订阅端,如果不是,则继续搜索订阅树,直至找到所对应的订阅端,当订阅端收到消息是,解析判断此消息中是否含有媒体文件信息,如果没有,则主动通过MQTT协议将消息体推送到订阅端;如果消息中含有媒体文件,则对客户端做出响应,客户端通过向服务器端发起HTTP请求,服务器端解析请求,并做出响应,然后客户端通过HTTP协议从服务器端抽取媒体文件,服务器端返回媒体文件所在地址,客户端从该地址下载每天文件,即完成了一条消息的推送。
5.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,预取驱动的异步任务处理机制:通过对线程池的存储模式进行改进,避免缓冲队列满,造成新任务无法创建的问题;
通过线程预取,利用网络空闲资源提前执行耗时操作,避免移动网络质量差的环境下,长时间无响应的问题,采用资源开销较小,更适用于多个任务协作的Handler+Looper+消息队列的多线程间通信模式,UI主线程创建子线程,子线程执行相关操作,完成时发送更新UI的消息到消息队列中,并通过Handler通知UI主线程进行界面更新。
6.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,改进线程池存储模式:将线程池改为一个工作线程以及一个无边界的先进先出队列,减少不同工作线程切换造成的资源消耗,而且不会由于队列满,而造成新的异步任务无法创建线程的情况。
7.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,线程预取:在系统空闲或者网络资源好时对数据库的写入和读取,网络请求等资源消耗成本高的数据进行预取,将预取数据保存到一个静态的Hashmap中,在移动设备网络流量受限,将预取网络数据缓存到SdCard或内存中,在访问时避免因网络条件差,而造成长时间卡顿,提高用户的交互体验,以及系统响应的即时性;
线程预取过程:首先UI主线程创建一个子线程,在线程预取过程中,创建一个工作线程,并将它的优先级设置为THREAD_PRIORITY_BACKGROUND,调用onPreExecute()、execute()、doInBackground()、onPostExecute()方法,对线程进行预取,并将其保存在静态哈希表中;
创建完后台预取的线程,通过一个实施例使用这个后台预取线程,实施例由两个Activity组成,LoginActivity是登陆界面,ContactFragment是办公情景下单位及个人通讯录模块,系统在登陆过程中对网络状态、SD卡信息、SIM卡信息、用户个人信息进行检测,这类耗时操作需要开启新线程处理,处理完成后,显示系统主页面,这时系统自动检测ContactFragment中是否有内容更新,如果存在通讯录更新,则系统后台先自动将其下载到本地,这样在使用单位及个人通讯录模块时,可直接从本机读取数据,而不是从系统服务器端通过网络进行下载,提高系统响应的实时性。
8.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,多线程实时通信:采用Looper+Handler+MessageQueue的方式完成UI主线程与子线程之间的通信,其中Handler需要在各个Activity中注册及初始化,负责创建消息,Looper由UI主线程创建,负责创建一个MessageQueue,每个线程只有一个Looper实例,同时一个Looper实例也只有一个MessageQueue,然后进入一个无限循环体不断从该MessageQueue中读取消息,每循环一次,从其内部的消息队列中取出一个消息,然后回调对应的消息处理函数,执行完成一个消息后则继续循环,如果消息队列为空,线程则阻塞等待。
9.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,本发明提出办公情景下实时通讯系统以单位及个人交互通讯录模块为核心,并且包括任务协作、即时消息、IP电话及多人会议模块,准确满足用户办公情景下的需求;
通讯录模块包括保存于服务器端的单位通讯录,以及用户本机的个人通讯录;任务模块以单位通讯录中组织结构树为依托来完成多人的任务协作,包括发起任务、接收任务、修改任务、对任务进行反馈和统计;即时消息模块以单位通讯录中组织结构树为依托完成点多点以及点对多的文字、语音、视频、文件多媒体信息的通信;IP电话模块是当用户处在单位内部网络时,通过内部网络对单位通讯录内任意对象发起IP电话,当用户不在单位内网时,通过运营商发起通话;会议模块是当用户需要发起多人语音或者视频会议时,利用系统发起会议的创建。
10.根据权利要求1所述的节省流量电量的跨平台办公实时通讯系统,其特征在于,安卓客户端设计实现:安卓客户端分为多层框架,其中主要包括视图层、控制层、模型层、Handler、线程以及网络请求层,其中视图层包括应用程序涉及到的所有页面XML布局文件,控制层包括所有页面的逻辑跳转以及按钮点击动作等,模型层包括数据模型以及上层数据访问接口,网络请求主要是将请求解析为JSON字段,PersonThread作为主要是处理通讯录更新下载等耗时操作,避免系统主进程长时间无响应,Handler负责为界面主线程与子线程之间的通信,每一个任务创建一个新的线程,通过PersonThread执行相关请求,并传递消息,当系统返回消息为success时,Handler实例向UI线程发送消息,通知主界面线程进行更新;
安卓客户端代码主要分为adapter、layout、Activity、fragment、utils五部分,其中layout中存放安卓应用所对应的页面布局文件,定义各个页面的样式、颜色、风格以及控件,adapter则对应绑定一个UI界面中的所有控件及其所需填充的数据来源,生成对应的适配器;Activity则是控制每个业务界面中发生的事件及增删改查操作进行节目更新,fragment独立于Activity,包括ChatFragment、TaskFragment、ContactFragment、MeetingFragment、PhoneFragment,通过侧滑加载不同模块的主页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722111.3A CN113364671A (zh) | 2021-06-28 | 2021-06-28 | 节省流量电量的跨平台办公实时通讯系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110722111.3A CN113364671A (zh) | 2021-06-28 | 2021-06-28 | 节省流量电量的跨平台办公实时通讯系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113364671A true CN113364671A (zh) | 2021-09-07 |
Family
ID=77536897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110722111.3A Pending CN113364671A (zh) | 2021-06-28 | 2021-06-28 | 节省流量电量的跨平台办公实时通讯系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113364671A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584505A (zh) * | 2022-01-25 | 2022-06-03 | 威胜信息技术股份有限公司 | 一种基于发布订阅的边边通讯消息路由方法 |
CN114866528A (zh) * | 2022-04-01 | 2022-08-05 | 广东美味鲜调味食品有限公司 | 一种基于MQTT和Websocket的数据通讯方法 |
CN116389578A (zh) * | 2023-06-06 | 2023-07-04 | 深圳市华曦达科技股份有限公司 | 网通设备mqtt多任务调度方法、系统和可读存储介质 |
CN116743713A (zh) * | 2023-06-27 | 2023-09-12 | 深圳金之桥信息科技有限公司 | 基于物联网的远程在线无纸会议方法、装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101155324A (zh) * | 2006-09-28 | 2008-04-02 | 赵建文 | 一种基于或囊括手机电话本的即时通讯方法和系统 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
CN104992081A (zh) * | 2015-06-24 | 2015-10-21 | 华中科技大学 | 一种Android应用程序第三方代码的安全增强方法 |
CN107800605A (zh) * | 2016-08-30 | 2018-03-13 | 威海兴达信息科技有限公司 | 一种企业即时通讯系统 |
CN108897507A (zh) * | 2018-05-02 | 2018-11-27 | 华南理工大学 | 一种基于安卓端智慧课堂的白板同步显示方法及系统 |
CN109547333A (zh) * | 2018-12-19 | 2019-03-29 | 北京仁科互动网络技术有限公司 | 即时通信方法及装置 |
-
2021
- 2021-06-28 CN CN202110722111.3A patent/CN113364671A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101155324A (zh) * | 2006-09-28 | 2008-04-02 | 赵建文 | 一种基于或囊括手机电话本的即时通讯方法和系统 |
CN101692229A (zh) * | 2009-07-28 | 2010-04-07 | 武汉大学 | 基于数据内容的三维空间数据自适应多级缓存系统 |
CN104992081A (zh) * | 2015-06-24 | 2015-10-21 | 华中科技大学 | 一种Android应用程序第三方代码的安全增强方法 |
CN107800605A (zh) * | 2016-08-30 | 2018-03-13 | 威海兴达信息科技有限公司 | 一种企业即时通讯系统 |
CN108897507A (zh) * | 2018-05-02 | 2018-11-27 | 华南理工大学 | 一种基于安卓端智慧课堂的白板同步显示方法及系统 |
CN109547333A (zh) * | 2018-12-19 | 2019-03-29 | 北京仁科互动网络技术有限公司 | 即时通信方法及装置 |
Non-Patent Citations (2)
Title |
---|
CFT56200_LN: "MQTT简介之四 Mosquito", 《HTTP://BLOG.CSDN.NET/CAOFENGTAO1314/ARTICLE/DETAILS/106571636》, 5 June 2020 (2020-06-05) * |
魏菁: "基于MQTT协议和ROS的机器人任务规模化分发和部署", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 February 2020 (2020-02-15) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584505A (zh) * | 2022-01-25 | 2022-06-03 | 威胜信息技术股份有限公司 | 一种基于发布订阅的边边通讯消息路由方法 |
CN114584505B (zh) * | 2022-01-25 | 2024-04-09 | 威胜信息技术股份有限公司 | 一种基于发布订阅的边边通讯消息路由方法 |
CN114866528A (zh) * | 2022-04-01 | 2022-08-05 | 广东美味鲜调味食品有限公司 | 一种基于MQTT和Websocket的数据通讯方法 |
CN116389578A (zh) * | 2023-06-06 | 2023-07-04 | 深圳市华曦达科技股份有限公司 | 网通设备mqtt多任务调度方法、系统和可读存储介质 |
CN116389578B (zh) * | 2023-06-06 | 2023-08-08 | 深圳市华曦达科技股份有限公司 | 网通设备mqtt多任务调度方法、系统和可读存储介质 |
CN116743713A (zh) * | 2023-06-27 | 2023-09-12 | 深圳金之桥信息科技有限公司 | 基于物联网的远程在线无纸会议方法、装置 |
CN116743713B (zh) * | 2023-06-27 | 2024-04-30 | 深圳金之桥信息科技有限公司 | 基于物联网的远程在线无纸会议方法、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113364671A (zh) | 节省流量电量的跨平台办公实时通讯系统 | |
US11431847B2 (en) | Intermediary device for data message network routing and enhancement in a contact center environment | |
CN102255935B (zh) | 云服务消费方法、云服务中介及云系统 | |
CN101867487B (zh) | 用图形呼叫连接象征管理联系中心的系统和方法 | |
CN102158423B (zh) | 经由聊天群跟踪内容项更新 | |
CN107040416B (zh) | 一种基于Cairngorm框架的虚拟数据中心可视化管理方法 | |
CN1825311A (zh) | 用于从多个联系人源聚集联系人信息的方法和系统 | |
US20120254777A1 (en) | Interaction method, apparatus and terminal for syncretic communication | |
CN108073625B (zh) | 用于元数据信息管理的系统及方法 | |
CN111970188B (zh) | 能力转发方法及装置 | |
CN103795607A (zh) | 一种消息处理方法、即时通信客户端及即时通信系统 | |
CN112256954A (zh) | 一种消息推送的处理方法及相关系统 | |
CN104253808A (zh) | 即时通信系统中的状态呈现方法和状态呈现服务器 | |
CN110234080A (zh) | 一种信息显示方法、装置和系统 | |
CN103873518A (zh) | 多终端同步获取增强通讯录的方法、系统与Web服务器 | |
CN108306851A (zh) | 信息获取方法、提供方法、装置及系统 | |
CN111090533A (zh) | 公告信息发送方法、装置、电子设备及存储介质 | |
CN114866528A (zh) | 一种基于MQTT和Websocket的数据通讯方法 | |
KR20130009869A (ko) | 마이크로블로그 클라이언트, 마이크로블로그 메시지들을 집적하기 위한 방법 및 인스턴트 메시징 클라이언트 | |
US8095489B2 (en) | System and method of real-time group intelligence creation with mass volume of web-based thinking grids | |
CN102045274B (zh) | 基于即时通信实现信息交互的方法和通信系统 | |
CN109547333A (zh) | 即时通信方法及装置 | |
US11916974B1 (en) | Interoperability between RCS networks and proprietary messaging platforms | |
US11855945B2 (en) | Method, computer device, and non-transitory computer-readable recording medium to pick and display message in messaging-based social network service | |
KR20050032649A (ko) | 인공생명을 학습시키는 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |