云环境下实时消息推送服务构建与实现
摘 要随着国家“互联网+”战略的实施,互联网思维迅速渗透到各个领域,目前移动已经影响和改变了人们的生活和工作方式,人们可以利用移动互联网实时信息的获取,但是人们并不满足于此,而是希望大量相关的信息能够自主的推送到移动终端。消息的本质是信息,也是信息的载体,移动互联网时代消息的功能主要是提醒用户,用户在专注某种事物时可以接收到其他应用程序推送的消息,让用户可以实时掌握其他事物的动态。现阶段大多数消息推送服务都部署在云端,但是现有的推送技术大多基于订阅模式,通常是主题订阅模式。本文主要研究面向不同平台终端的信息交互方式,通过对现有的消息推送技术进行深入研究,提出了云环境下消息推送服务的解决方案,设计了PushWeb框架,运用WebSocket技术实现了在WebService环境下的消息推送服务,通过移动终端来展现效果。具体如下:1)研究消息推送服务框架,针对其特征及应用场合进行比较分析,同时结合消息推送服务的实际需求,选择使用Gin框架作为系统总体结构,搭建WebSocket技术的实现不同终端消息推送的系统。2)分析消息推送服务的主要工作流程,将消息推送服务的功能模块进行划分,对各个模块进行需求分析,确定需要实现的具体功能。3)根据实际项目需求进行分析,采用数据库设计原则,对数据库表结构进行设计。4)研究跨终端消息推送技术,对系统中涉及的WebSocket等技术进行研究,搭建云环境下的实际运行环境,展示云环境下实时消息推送服务实现的具体过程和实现效果。本文根据系统实际需求,结合数据库的设计原则,对系统的数据库表结构进行了设计,将消息推送服务部署在阿里云中,对系统运行的过程进行分析,通过相关测试用例对系统整体性能、主要功能模块等方面进行了测试,达到了用户的需求。1996年,美国的PointCast网络公司提出消息推送技术。1999年,网景公司推出了RSS (Really Simple Syndication,真简单聚合)技术,RSS作为一个信息聚合器和过滤器,为网站获取信息并将这些信息推送给感兴趣的用户。2005年,互联网工程任务组发布了Atom( Atom Publish Protocol)协议[2],目的是提供编辑Web资源和表示内容的格式,如博客、Wiki等内容。其实RSS和Atom都是基于用户订阅的模型,通过XML格式对消息源进行处理,然后将这些消息推送给相关用
*好棒文|www.hbsrm.com +Q: ¥351916072$
户。
目 录
第一章 绪论 1
1.1项目背景 1
1.2国内外相关研究发展 1
1.3研究内容和目标 2
1.4论文组织结构 3
第二章 相关技术简介 4
2.1云技术简介 4
2.2消息推送技术简介 4
2.3移动端推送消息展现形式 4
2.4移动端系统的推送机制分析 5
2.4.1安卓系统推送机制 5
2.4.2苹果系统推送机制 6
2.5 本章小结 7
第三章 实时消息推送服务方案设计 8
3.1需求概述 8
3.2整体结构设计 9
3.3各模块功能设计 9
3.3数据库设计 11
3.4本章小结 14
第四章 实时消息推送服务的实现 15
4.1实时消息推送服务总体实现 15
4.2消息推送管理模块实现 15
4.3服务端推送模块实现 18
4.4安卓客户端模块实现 19
4.5云环境相关配置的实现 20
4.6本章小结 21
第五章 系统运行及测试分析 22
5.1测试环境 22
5.2功能性测试时用例设计 22
5.3测试结果分析 25
5.4本章小结 26
第六章 总结与展望 27
6.1总结 27
6.2展望 27
结束语 28
致 谢 29
参考文献 30
第一章 绪论
1.1项目背景
随着信息技术的发展,中国已成为全球网络大国,在网络规模、用户规模、手机用户、手机人数上网、互联网交易均居全球第一。中国已经连续两年举办世界互联网大会,逐步在世界互联网舞台中掌握了话语权。互联网的兴起,对国民日常生活、社会发展产生了很大的影响。
随着互联网上的应用越来越多,对于如何获取与自己相关的消息,用户常常感到无从下手。消息推送方式以一种新型消息传递被提出来。消息推送是一种主要通过服务器主动将消息发送给客户端的交互方式。传统的交互方式中,客户端需要主动拉取服务器中信息,往往需要用户主动检查更新。此方式获取信息的效率低下,同时此方式会伴随着去多无用信息的产生,从而网络阻塞。因此,消息推送作为一种新的交互方式被提了出来。消息推送方式无需用户不停的检查更新,与主动刷新相比,用户能及时、有效的获取相关信息[1]。同时随着云技术的普及,消息推送逐渐的从原来的物理机房推送转变成为云环境下推送。
1.2国内外相关研究发展
Google的PubSubHubbub[3]扩展了Atom和RSS,是一种实现互联网消息分散式传播的开放标准,它提供了即时的更新通知,改善了客户端获得任意间隔信息开销过大的情况。PubSubHubbub将协议原来的“拉”机制变为真正的“推”机制,客户端不再间隔固定时间轮询服务器查看用户是否有更新,而是变为当有更新时及时通知客户端。PubSubHubbub基于发布订阅通信模型,用户首先订阅主题URL,发布者每次更新主题URL时,一个中间系统会从主题URL中高效地提取信息,并推送给所有已注册的订阅者。
2011年,HTML5规范提出了WebSocket协议,它实现了浏览器与服务器之间实时全双工通信的技术。WebSocket为Web实时通信提供低延时、高吞吐量的解决方案。
在Web推送技术不断发展的同时,消息推送在移动互联网领域也得到了广泛的研究与应用。苹果公司推出了面向苹果终端的消息推送系统APNS(Apple Push Notification Service )。APNS会对用户进行连接认证并记录设备,应用程序将消息及目标设备发送给APNS,APNS查找己注册设备并推送信息。Android从2.2版本增加了云消息推送服务—C2DM (Android Cloud to Device Messaging),用户将Google账户和应用名称发送给C2DM服务器注册,第三方服务器将要推送的消息发给C2DM服务器,由C2DM服务器转发推送给Android设备。微软也为Windows Phone手机提供了云端推送服务平台MPNS (Microsoft Push Notification Service)。因为C2DM有着不可忽视的缺陷,在2015年底,Google将官方的推送服务完全换成了GCM(Google Cloud Message)。
现有的推送技术大多基于发布订阅模型,且只支持主题式订阅,基于Web的推送技术的随着近年移动互联网的发展演变出许多解决方案,其中,WebSocket作为一种新的技术已被提出且具有广泛的应用前景和研究应用价值,但是针对不同平台终端的推送还未有统一标准。
随着消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)不断地完善越来越多的开发者选用他作为主要的协议来开发消息推送。MQTT项目的最新一次提交时间为2016年2月份,由此可以看出在接下来的一段时间里MQTT协议将继续作为主流开发协议。
国内许多互联网公司也在研究消息推送技术并且将此技术应用到相关产品中,如:百度公司的消息推送服务、极光推送等。
通过对国内外消息推送技术的研究,本文选择使用WebSocket技术来构建实时消息推送服务。
1.3研究内容和目标
本文通过研究云环境下的实时推送服务,针对传统基于主题订阅模式的推送服务只能在同一个终端中进行消息推送的缺陷,提出了云环境下的实时消息推送的解决方案,采用WebSocket技术实现了消息推送服务(PushWeb)框架并将其部署在阿里云中,同时实现管理平台和客户端(APP)应用。具体研究内容如下:
*好棒文|www.hbsrm.com +Q: ¥351916072$
户。
目 录
第一章 绪论 1
1.1项目背景 1
1.2国内外相关研究发展 1
1.3研究内容和目标 2
1.4论文组织结构 3
第二章 相关技术简介 4
2.1云技术简介 4
2.2消息推送技术简介 4
2.3移动端推送消息展现形式 4
2.4移动端系统的推送机制分析 5
2.4.1安卓系统推送机制 5
2.4.2苹果系统推送机制 6
2.5 本章小结 7
第三章 实时消息推送服务方案设计 8
3.1需求概述 8
3.2整体结构设计 9
3.3各模块功能设计 9
3.3数据库设计 11
3.4本章小结 14
第四章 实时消息推送服务的实现 15
4.1实时消息推送服务总体实现 15
4.2消息推送管理模块实现 15
4.3服务端推送模块实现 18
4.4安卓客户端模块实现 19
4.5云环境相关配置的实现 20
4.6本章小结 21
第五章 系统运行及测试分析 22
5.1测试环境 22
5.2功能性测试时用例设计 22
5.3测试结果分析 25
5.4本章小结 26
第六章 总结与展望 27
6.1总结 27
6.2展望 27
结束语 28
致 谢 29
参考文献 30
第一章 绪论
1.1项目背景
随着信息技术的发展,中国已成为全球网络大国,在网络规模、用户规模、手机用户、手机人数上网、互联网交易均居全球第一。中国已经连续两年举办世界互联网大会,逐步在世界互联网舞台中掌握了话语权。互联网的兴起,对国民日常生活、社会发展产生了很大的影响。
随着互联网上的应用越来越多,对于如何获取与自己相关的消息,用户常常感到无从下手。消息推送方式以一种新型消息传递被提出来。消息推送是一种主要通过服务器主动将消息发送给客户端的交互方式。传统的交互方式中,客户端需要主动拉取服务器中信息,往往需要用户主动检查更新。此方式获取信息的效率低下,同时此方式会伴随着去多无用信息的产生,从而网络阻塞。因此,消息推送作为一种新的交互方式被提了出来。消息推送方式无需用户不停的检查更新,与主动刷新相比,用户能及时、有效的获取相关信息[1]。同时随着云技术的普及,消息推送逐渐的从原来的物理机房推送转变成为云环境下推送。
1.2国内外相关研究发展
Google的PubSubHubbub[3]扩展了Atom和RSS,是一种实现互联网消息分散式传播的开放标准,它提供了即时的更新通知,改善了客户端获得任意间隔信息开销过大的情况。PubSubHubbub将协议原来的“拉”机制变为真正的“推”机制,客户端不再间隔固定时间轮询服务器查看用户是否有更新,而是变为当有更新时及时通知客户端。PubSubHubbub基于发布订阅通信模型,用户首先订阅主题URL,发布者每次更新主题URL时,一个中间系统会从主题URL中高效地提取信息,并推送给所有已注册的订阅者。
2011年,HTML5规范提出了WebSocket协议,它实现了浏览器与服务器之间实时全双工通信的技术。WebSocket为Web实时通信提供低延时、高吞吐量的解决方案。
在Web推送技术不断发展的同时,消息推送在移动互联网领域也得到了广泛的研究与应用。苹果公司推出了面向苹果终端的消息推送系统APNS(Apple Push Notification Service )。APNS会对用户进行连接认证并记录设备,应用程序将消息及目标设备发送给APNS,APNS查找己注册设备并推送信息。Android从2.2版本增加了云消息推送服务—C2DM (Android Cloud to Device Messaging),用户将Google账户和应用名称发送给C2DM服务器注册,第三方服务器将要推送的消息发给C2DM服务器,由C2DM服务器转发推送给Android设备。微软也为Windows Phone手机提供了云端推送服务平台MPNS (Microsoft Push Notification Service)。因为C2DM有着不可忽视的缺陷,在2015年底,Google将官方的推送服务完全换成了GCM(Google Cloud Message)。
现有的推送技术大多基于发布订阅模型,且只支持主题式订阅,基于Web的推送技术的随着近年移动互联网的发展演变出许多解决方案,其中,WebSocket作为一种新的技术已被提出且具有广泛的应用前景和研究应用价值,但是针对不同平台终端的推送还未有统一标准。
随着消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT)不断地完善越来越多的开发者选用他作为主要的协议来开发消息推送。MQTT项目的最新一次提交时间为2016年2月份,由此可以看出在接下来的一段时间里MQTT协议将继续作为主流开发协议。
国内许多互联网公司也在研究消息推送技术并且将此技术应用到相关产品中,如:百度公司的消息推送服务、极光推送等。
通过对国内外消息推送技术的研究,本文选择使用WebSocket技术来构建实时消息推送服务。
1.3研究内容和目标
本文通过研究云环境下的实时推送服务,针对传统基于主题订阅模式的推送服务只能在同一个终端中进行消息推送的缺陷,提出了云环境下的实时消息推送的解决方案,采用WebSocket技术实现了消息推送服务(PushWeb)框架并将其部署在阿里云中,同时实现管理平台和客户端(APP)应用。具体研究内容如下:
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/487.html