1 / 9
文档名称:

消息推送机制技术设计.docx

格式:docx   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

消息推送机制技术设计.docx

上传人:012luyin 2016/6/15 文件大小:0 KB

下载得到文件列表

消息推送机制技术设计.docx

文档介绍

文档介绍:消息推送技术消息推送技术消息推送 Web 层消息推送套接字 HTTP 请求轮询简单轮询长轮询 HTTP 流 HTML 5 WebSocket 多客户端支持 APIs 多样网络连接不稳定最小化流量服务层消息服务 Java Message Service 消息域消息确认技术设计目标 Web 层设计 Pushlets 组件 JS 客户端服务层设计处理步骤消息表逻辑架构推时序关键点参考消息推送消息推送是针对 Web 应用开发领域的技术,指服务端以主动方式将信息送达客户端。主要用于提升用户体验,避免用户刷新页面从服务端拉取数据。例如 Web 邮件中自动出现刚收到的邮件项, Web 即时通讯自动提示新到消息等应用场景。要实现消息推送机制,涉及两方面的内容: ● Web 层消息推送●服务层消息服务 Web 层消息推送套接字可以使用套接字接口进行全双工通讯。可以通过 Flash XMLSocket 、 Java Applet 技术实现。但由于实现方案与厂商技术绑定过紧,不属于 Web 标准化范畴,并且存在一些限制(通讯端口开启安全、客户端插件) ,这里不进行描述。 HTTP 请求轮询目前的 Web 应用是基于 HTTP 协议的,其规定了请求- 响应的处理模型,位于应用层的单工通讯模式使得纯粹意义上的服务端推送方式变得难以实现。为了基于 HTTP 协议进行“推送”实现,可由客户端发起 HTTP 请求轮询,服务端在请求后返回响应。根据轮询时间、请求处理方式,分为以下三种推。简单轮询客户端一般以定时方式发起请求,服务端处理后返回响应。●原理、客户端/ 服务端实现简单●可根据应用场景调整轮询时间间隔●服务端需要处理大量请求长轮询客户端发起请求后服务端将该请求挂起(不返回响应) ,直到超时、异常或需要处理响应(推内容)才返回。客户端收到响应后再次请求(即轮询)服务端,并处理响应。●实时性高●服务端需要管理挂起请求 HTTP 流客户端发起请求后服务器端处理请求, 并通过 HTTP 流一直向客户端写入数据, 直到超时或异常才返回响应。连接断开后客户端再次请求服务端,属于长轮询的一种。 HTML 5 WebSocket 这是标准化的客户端全双工通讯规范, 但由于目前服务端规范尚未成型, 且考虑到现有客户端对 HTML 5 的支持有限,这里不进行描述。多客户端支持上述介绍是针对浏览器客户端的, 在实际应用场景中, 还需要考虑其他客户端支持, 例如 iOS 、 Android 等。在移动客户端方面,需要考虑如下几点。 APIs 多样不同客户端本地 APIs 接口存在差异,但都支持基本的 HTTP 协议。直接基于 HTTP 协议进行开发可将差异最小化。网络连接不稳定通讯信道打开后不一定能长时间维护,客户端与服务端的状态管理复杂。最小化流量需要尽量最小化网络流量,提升移动客户端可用性。服务层消息服务消息是系统或组件间通讯的一种低耦合方式,是系统级异步架构的基础。在 Web 消息推送中,服务端管理应用状态,当状态发生变迁时需要通知客户端,完成消息推送。 Java Message Service 需要重点关注如下技术点: 消息域●点对点只有一个客户端可以接收到消息。●发布/ 订阅广播给订阅的客户端。可配置持久化订阅。消息确认●会话本地事务提交时会对收到的消息进行确认,回滚时将重传所有消息●非本