《消息推送系统及其消息推送的方法.pdf》由会员分享,可在线阅读,更多相关《消息推送系统及其消息推送的方法.pdf(14页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102904962 A (43)申请公布日 2013.01.30 C N 1 0 2 9 0 4 9 6 2 A *CN102904962A* (21)申请号 201210408446.9 (22)申请日 2012.10.23 H04L 29/08(2006.01) (71)申请人深圳市汇智集信息科技有限公司 地址 518057 广东省深圳市南山区高新南区 留学生创业大厦1108室 (72)发明人杨义明 何洋 (54) 发明名称 消息推送系统及其消息推送的方法 (57) 摘要 一种消息推送系统,包括客户端与服务器,其 中:客户端包括:第一通信模块,用于生成所述客 户端。
2、的标识号,设置订阅消息的类型,并将其发送 至所述服务器;服务器包括:第二通信模块,用于 接收客户端的标识号与订阅消息的类型,并生成 客户端代理对象;监听模块,用于监听消息;其中 第一通信模块发送消息请求,第二通信模块接收 消息请求,并更新与所述客户端的连接时间,第二 通信模块在监听模块监听到消息时根据消息请求 返回消息至客户端,第一通信模块接收所述消息, 并解析所述消息,控制页面显示。本发明中的消 息推送系统实现了服务器的消息及时在客户端显 示。 (51)Int.Cl. 权利要求书2页 说明书5页 附图6页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书。
3、 5 页 附图 6 页 1/2页 2 1.一种消息推送系统,包括客户端与服务器,其中: 客户端包括:第一通信模块,用于生成所述客户端的标识号,设置订阅消息的类型,并 将所述客户端的标识号与订阅消息的类型发送至所述服务器; 所述服务器包括:第二通信模块,用于接收所述客户端的标识号与订阅消息的类型,并 根据所述客户端的标识号与订阅消息的类型生成客户端代理对象; 监听模块,用于监听消息; 其中所述第一通信模块还用于发送消息请求,所述第二通信模块还用于接收所述消息 请求,并更新与所述客户端的连接时间,所述第二通信模块在所述监听模块监听到消息时 根据所述消息请求返回所述消息至所述客户端,所述第一通信模块。
4、还用于接收所述消息, 并解析所述消息,控制页面显示。 2.如权利要求1所述的消息推送系统,其特征在于,所述客户端还包括: 计数模块,用于在所述第一通信模块接收到所述消息时将超时次数置为“0”; 第一计时模块,用于所述第一通信模块发送所述消息请求时开始计时; 第一判断模块,用于判断所述第一计时模块计时是否超时,其中,所述计数模块还用在 所述第一计时模块超时时记录超时次数,所述第一判断模块还用于判断所述超时次数是否 大于最大超时次数,所述第一通信模块还用在所述超时次数大于最大超时次数时进入连接 侦测重连阶段。 3.如权利要求1所述的消息推送系统,其特征在于,所述第一判断模块还用于判断是 否结束订阅。
5、,所述监听模块在结束订阅后取消消息监听,清理所述客户端代理对象。 4.如权利要求1所述的消息推送系统,其特征在于,所述服务器还包括: 第二判断模块,用于判断所述监听模块中是否监听到消息,其中所述监听模块没有监 听到消息时将所述消息请求挂起; 第二计时模块,用于记录所述消息请求的挂起时间,其中,所述第二判断模块还用于判 断所述消息请求的挂起时间是否超过固定时间,所述第二通信模块在所述挂起时间超过固 定时间时返回空消息至所述客户端。 5.如权利要求4所述的消息推送系统,其特征在于,所述第二计时模块还用记录所述 客户端代理对象连接所述客户端的时间。 6.如权利要求5所述的消息推送系统,其特征在于,所。
6、述第二判断模块还用于判断所 述客户端代理对象连接所述客户端的时间是否超时,所述监听模块还用于在所述客户端代 理对象连接所述客户端的时间超时时取消消息监听,清理所述客户端代理对象。 7.一种消息推送的方法,用于服务器为客户端推送消息,包括: 所述客户端生成客户端的标识号,设置订阅消息的类型,并发送所述客户端的标识号, 设置订阅消息的类型; 所述服务器接收所述客户端的标识号,设置订阅消息的类型,并根据所述客户端的标 识号,设置订阅消息的类型创建客户端代理对象; 所述服务器监听消息; 所述客户端发送消息请求; 所述服务器接收所述消息请求,并更新与所述客户端的连接时间;是否监听到消息; 若是,则返回所。
7、述消息至所述客户端; 权 利 要 求 书CN 102904962 A 2/2页 3 所述客户端接收所述消息,并解析所述消息,控制页面显示。 8.如权利要求7所述的消息推送的方法,其特征在于,还包括: 所述客户端记录所述消息请求发送的时间; 所述客户端判断所述消息请求是否超时; 若是,则所述客户端记录超时次数; 所述客户端判断所述超时次数是否大于固定值; 若是,则所述客户端进入连接侦测重连阶段。 9.如权利要求1所述的消息推送的方法,其特征在于,还包括: 所述客户端判断是否结束订阅; 若是,则所述服务器在结束订阅后取消消息监听,清理所述客户端代理对象。 10.如权利要求7所述的消息推送的方法,其。
8、特征在于,还包括: 所述服务器判断是否监听到消息; 若是没有监听到消息,则所述服务器将所述消息请求挂起; 所述服务器记录所述消息请求的挂起时间; 所述服务器判断所述消息请求的挂起时间是否超过固定时间; 若所述挂起时间超过固定时间,则所述服务器返回空消息至所述客户端。 11.如权利要求10所述的消息推送的方法,其特征在于,还包括: 所述服务器记录所述客户端代理对象连接所述客户端的时间。 12.如权利要求11所述的消息推送的方法,其特征在于,还包括: 所述服务器判断所述客户端代理对象连接所述客户端的时间是否超时; 若所述客户端代理对象连接所述客户端的时间超时,则所述服务器取消消息监听,清 理所述客。
9、户端代理对象。 权 利 要 求 书CN 102904962 A 1/5页 4 消息推送系统及其消息推送的方法 技术领域 0001 本发明涉及网络通信,尤其涉及一种消息推送系统及其消息推送的方法。 背景技术 0002 传统模式的WEB应用的工作方式如下: 0003 用户向浏览器发出请求; 0004 浏览器将请求发送给服务器; 0005 服务器响应浏览器的请求,处理后将数据返回给浏览器; 0006 浏览器收到响应数据,解析后显示结果。 0007 这种传统的工作模式,只有用户主动地发出请求,浏览器端才会得到服务器端的 更新。而在很多现实的应用中,服务器端的更新需要即时地体现在浏览器端,比如即时通 讯。
10、,实时监控等。以即时通讯为例,其他用户的登录登出,状态的改变,发送消息等,浏览器 需要实时地反映服务器端的这些变化。传统的用户主动请求的方式显然无法满足这种现实 的需求。 0008 现有技术中,常采用以下方案来解决: 0009 1、Flash XMLSocket 0010 实现方法:在HTML页面中嵌入一个使用XMLSocket类的Flash程序。JavaScript 通过调用此Flash程序提供的套接口与服务器端的套接口进行通信。JavaScript解析收到 服务器端的XML格式的返回数据,控制HTML页面的显示内容。 0011 此方案的缺点:客户端必须安装Flash播放器插件;XMLSoc。
11、ket没有HTTP隧道功 能,可能会被防火墙阻止。 0012 2、Iframe及htmlfile的流(streaming)方式 0013 实现方法:在HTML页面里嵌入一个隐藏帧(Iframe),将这个隐藏帧的src属性 设为对一个长连接的请求,服务器端返回对浏览器端JavaScript函数的调用,浏览器端的 JavaScript引擎在收到服务器返回的JavaScript调用时就会执行代码。 0014 此方案的缺点:浏览器的进度条会显示页面加载没有完成,IE上方的图标会不停 的转动。 0015 3、WebSocket方式 0016 HTML引入了WebSocket接口并且定义了一个全双工的通信。
12、通道,通过一个单一的 套接字在WEB上进行操作,支持页面使用WebSocket协议与服务器进行全双工的通信。 0017 此方案的缺点:不同的浏览器对HTML5的支持力度及具体实现有差异,而且IE浏 览器不支持这些新技术。 发明内容 0018 有鉴于此,有必要提供一种消息推送系统及其消息推送的方法,以实现在客户端 (浏览器)上及时体现服务器(后台)的数据变化。 说 明 书CN 102904962 A 2/5页 5 0019 本发明提供的消息推送系统,包括客户端与服务器,其中:客户端包括:第一通信 模块,用于生成所述客户端的标识号,设置订阅消息的类型,并将所述客户端的标识号与订 阅消息的类型发送至。
13、所述服务器;所述服务器包括:第二通信模块,用于接收所述客户端 的标识号与订阅消息的类型,并根据所述客户端的标识号与订阅消息的类型生成客户端代 理对象;监听模块,用于监听消息;其中所述第一通信模块还用于发送消息请求,所述第二 通信模块还用于接收所述消息请求,并更新与所述客户端的连接时间,所述第二通信模块 在所述监听模块监听到消息时根据所述消息请求返回所述消息至所述客户端,所述第一通 信模块还用于接收所述消息,并解析所述消息,控制页面显示。 0020 本发明提供的消息推送的方法用于服务器为客户端推送消息,包括:所述客户端 生成客户端的标识号,设置订阅消息的类型,并发送所述客户端的标识号,设置订阅消。
14、息的 类型;所述服务器接收所述客户端的标识号,设置订阅消息的类型,并根据所述客户端的标 识号,设置订阅消息的类型创建客户端代理对象;所述服务器监听消息;所述客户端发送 消息请求;所述服务器接收所述消息请求,并更新与所述客户端的连接时间;是否监听到 消息;若是,则返回所述消息至所述客户端;所述客户端接收所述消息,并解析所述消息, 控制页面显示。 0021 本发明实施方式中的消息推送系统及其消息推送的方法,实现了服务器的消息及 时在客户端显示。 附图说明 0022 图1为本发明一实施方式中消息推送系统的模块结构图; 0023 图2为本发明一实施方式中消息推送方法中建立监听的流程图; 0024 图3。
15、为本发明一实施方式中消息推送方法中客户端检测以及重连的流程图; 0025 图4为本发明一实施方式中消息推送方法中服务器返回消息的流程图。 0026 图5为本发明一实施方式中消息推送方法中客户端取消订阅的流程图; 0027 图6为本发明一实施方式中消息推送方法中服务器清理客户端代理对象的流程 图; 0028 图7为本发明一实施方式中消息推送的流程图。 具体实施方式 0029 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。。
16、 0030 在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指 示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是 要求本发明必须以特定的方位构造和操作,因此不能理解为对本发明的限制。 0031 请参阅图1,图1所示为本发明一实施方式中消息推送系统的模块结构图。 0032 在本实施方式中,消息推送系统由客户端10、服务器20以及网络(图未示)组成。 0033 在本实施方式中,客户端10包括:第一通信模块110、计数模块120、第一计时模块 130以及第一判断模块140。 说 明 书CN 102904962 A 3/5页 6 。
17、0034 在本实施方式中,服务器20包括:第二通信模块210、监听模块220、第二判断模块 230以及第二计时模块240。 0035 在本实施方式中,第一通信模块110,用于生成所述客户端10的标识号,设置订阅 消息的类型,并将所述客户端10的标识号与订阅消息的类型发送至所述服务器20。 0036 第二通信模块210,用于接收所述客户端10的标识号与订阅消息的类型,并根据 所述客户端10的标识号与订阅消息的类型生成客户端代理对象。 0037 监听模块220用于监听消息。在本实施方式中,监听模块220监听的消息类型为 订阅消息的类型。 0038 在本实施方式中,第一通信模块110还用于发送消息请。
18、求,第二通信模块210还用 于接收所述消息请求,并更新与所述客户端10的连接时间。 0039 在本实施方式中,第二通信模块210在所述监听模块220监听到消息时根据所述 消息请求返回所述消息至所述客户端10,所述第一通信模块110还用于接收所述消息,并 解析所述消息,控制页面显示。 0040 在本实施方式中,计数模块120用于在所述第一通信模块110接收到所述消息时 将超时次数置为“0”。 0041 第一计时模块130用于所述第一通信模块110发送所述消息请求时开始计时。 0042 在本实施方式中,第一计时模块130在第一通信模块110收到返回的消息时停止 计时以及在计时时间超时时停止计时。 。
19、0043 第一判断模块140用于判断所述第一计时模块130计时是否超时,其中,所述计数 模块120还用在所述第一计时模块130超时时记录超时次数,所述第一判断模块140还用 于判断所述超时次数是否大于最大超时次数,所述第一通信模块110还用在所述超时次数 大于最大超时次数时进入连接侦测重连阶段。 0044 在本实施方式中,所述第一判断模块110还用于判断是否结束订阅,所述监听模 块220在结束订阅后取消消息监听,清理所述客户端代理对象。 0045 在本实施方式中,第二判断模块230,用于判断所述监听模块220中是否监听到消 息,其中所述监听模块220没有监听到消息时将所述消息请求挂起。 004。
20、6 第二计时模块240用于记录所述消息请求的挂起时间,其中,所述第二判断模块 230还用于判断所述消息请求的挂起时间是否超过固定时间,所述第二通信模块210在所 述挂起时间超过固定时间时返回空消息至所述客户端10。 0047 在本实施方式中,所述第二计时模块240还用记录所述客户端代理对象连接所述 客户端10的时间。 0048 在本实施方式中,所述第二判断模块230还用于判断所述客户端代理对象连接所 述客户端10的时间是否超时,所述监听模块220还用于在所述客户端代理对象连接所述客 户端的10时间超时时取消消息监听,清理所述客户端代理对象。 0049 请参阅图2,图2所示为本发明一实施方式中消。
21、息推送方法中建立监听的流程图。 0050 在本实施方式中,在步骤S100,所述客户端10生成客户端10的标识号,设置订阅 消息的类型,并通过第一通信模块110发送所述客户端10的标识号,设置订阅消息的类型。 0051 在步骤S102,所述服务器20接收所述客户端10的标识号,设置订阅消息的类型, 并根据所述客户端10的标识号,设置订阅消息的类型创建客户端代理对象。 说 明 书CN 102904962 A 4/5页 7 0052 请参阅图3,图3所示为本发明一实施方式中消息推送方法中客户端检测以及重 连的流程图。 0053 在步骤S200,客户端10的第一通信模块110发送消息请求。 0054 。
22、在步骤S201,客户端10的第一计时器130开始计时。 0055 在本实施方式中,第一计时模块130在第一通信模块110收到返回的消息时停止 计时以及在计时时间超时时停止计时。 0056 在步骤S202,客户端10的第一判断模块140判断所述第一计时模块130计时是否 超时。在本实施方式中,若第一计时模块130计时时间超过25毫秒时为超时,在本发明其 他实施方式中,也可以设定为计时超过20毫秒或30毫秒为超时。 0057 若是第一计时模块130计时超时,在步骤S204,客户端10的计数模块120记录超 时次数。 0058 在步骤S206,客户端10的第一判断模块140判断所述超时次数是否大于最。
23、大超时 次数。在本实施方式中,最大超时次数为3次。 0059 若是所述超时次数大于最大超时次数,在步骤S208,客户端10进入连接侦测重连 阶段,然后进入步骤S210。 0060 若是所述超时次数不大于最大超时次数,则在步骤S210,客户端10的第一判断模 块140判断是否结束订阅。 0061 若是客户端10结束订阅,则在步骤S212,客户端10关闭连接,取消订阅。 0062 在步骤S214,服务器20的监听模块220在结束订阅后取消消息监听,清理所述客 户端代理对象。 0063 若是客户端10没有结束订阅,则在步骤S216,客户端10继续保持连接。 0064 请参阅图4,图4所示为本发明一实。
24、施方式中消息推送方法中服务器20返回消息 的流程图。 0065 在本实施方式中,在步骤S300,服务器20的第二通信模块210接收消息请求,并更 新与所述客户端10的连接时间。 0066 在步骤S302,服务器20的第二判断模块230判断监听模块220是否监听到消息。 0067 若是监听模块230监听到消息,则在步骤S304,第二通信模块210返回所述消息至 所述客户端10。 0068 在步骤S306,所述客户端10的第一通信模块110接收所述消息,并解析所述消息, 控制页面显示。 0069 若是监听模块230没有监听到消息,则在步骤S306,监听模块220挂起所述消息请 求。 0070 在步。
25、骤S308,服务器20的第二计时模块240记录所述消息请求的挂起时间,服务 器20的第二判断模块230判断所述消息请求的挂起时间是否超过固定时间。 0071 若所述挂起时间超过固定时间,则在步骤S310,服务器20的第二通信模块210返 回空消息至所述客户端10。 0072 请参阅图5,图5所示为本发明一实施方式中消息推送方法中客户端10取消订阅 的流程图。 0073 在步骤S400,客户端10接收返回的消息,计数模块130将超时次数置为“0”。 说 明 书CN 102904962 A 5/5页 8 0074 在步骤S402,客户端10解析返回的消息,控制页面显示。 0075 在步骤S404,。
26、客户端10的第一判断模块140判断是否结束订阅。 0076 若是客户端10结束订阅,则在步骤S406,客户端10关闭连接,取消订阅。 0077 在步骤S408,服务器20的监听模块220在结束订阅后取消消息监听,清理所述客 户端代理对象。 0078 若是客户端10没有结束订阅,则在步骤S410,客户端10继续保持连接,发送消息 请求。 0079 请参阅图6,图6所示为本发明一实施方式中消息推送方法中服务器20清理客户 端代理对象的流程图。 0080 在步骤S500,服务器20的第二计时模块240记录所述客户端代理对象连接所述客 户端10的时间。 0081 在步骤S502,服务器20判断所述客户。
27、端代理对象连接所述客户端10的时间是否 超时。在本实施方式中,所述客户端代理对象连接所述客户端10的时间超过80100毫 秒时为超时。 0082 若是客户端代理对象连接所述客户端10的时间超时,则在步骤S504,所述服务器 20取消消息监听,清理所述客户端代理对象。 0083 请参阅图7,图7所示为本发明一实施方式中消息推送的流程图。 0084 A、客户端10发起消息请求; 0085 B、服务器20收到消息请求,检查是否有消息。如果没有消息,则挂起消息请求; 0086 C、如果有消息,立即返回消息给客户端10; 0087 D、在消息请求被挂起的过程中,如有新消息到达,则唤醒消息请求,返回消息给。
28、客 户端10; 0088 E、服务器20在超时时间内未收到新消息,返回空消息给客户端10; 0089 F、客户端10收到服务器20的返回的消息后,发起下一次消息请求; 0090 G、服务器20在关闭上一次连接后,收到下一次消息请求之前,如果有新消息,将 消息暂存,等到一有消息请求,就将该消息返回至客户端10。 0091 本发明实施方式中的消息推送系统及其消息推送的方法,实现了服务器20的消 息及时在客户端10显示,且当取消订阅或者是客户端10长时间没有与服务器20连接时, 取消消息监听,及时清理客户端代理对象,减少了服务器20的负荷。 0092 虽然本发明参照当前的较佳实施方式进行了描述,但本。
29、领域的技术人员应能理 解,上述较佳实施方式仅用来说明本发明,并非用来限定本发明的保护范围,任何在本发明 的精神和原则范围之内,所做的任何修饰、等效替换、改进等,均应包含在本发明的权利保 护范围之内。 说 明 书CN 102904962 A 1/6页 9 图1 图2 说 明 书 附 图CN 102904962 A 2/6页 10 图3 说 明 书 附 图CN 102904962 A 10 3/6页 11 图4 说 明 书 附 图CN 102904962 A 11 4/6页 12 图5 说 明 书 附 图CN 102904962 A 12 5/6页 13 图6 说 明 书 附 图CN 102904962 A 13 6/6页 14 图7 说 明 书 附 图CN 102904962 A 14 。