CN104333577A - 一种基于http的消息推送***及方法 - Google Patents

一种基于http的消息推送***及方法 Download PDF

Info

Publication number
CN104333577A
CN104333577A CN201410570675.XA CN201410570675A CN104333577A CN 104333577 A CN104333577 A CN 104333577A CN 201410570675 A CN201410570675 A CN 201410570675A CN 104333577 A CN104333577 A CN 104333577A
Authority
CN
China
Prior art keywords
http
long
server
browser
connection
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
Application number
CN201410570675.XA
Other languages
English (en)
Inventor
张勇平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201410570675.XA priority Critical patent/CN104333577A/zh
Publication of CN104333577A publication Critical patent/CN104333577A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/4061Push-to services, e.g. push-to-talk or push-to-video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种基于HTTP的消息推送***,包括:浏览器端模块:用于向服务器端发出建立浏览器HTTP长连接请求,并建立浏览器端HTTP长连接;还用于接收和显示服务器端推送过来的消息;长连接模块:用于建立服务器端HTTP长连接并将其存入长连接Map中;还用于建立浏览器HTTP长连接和服务器端HTTP长连接之间的长连接通道;消息推送模块:用于接收需要推送的消息,通过Jetty的Continuation机制和所述长连接通道将消息推送到浏览器端模块。采用了延续(Continuation)方案解决异步请求,实现用少量线程维护大量的并发连接,提高了消息推送***的性能,降低了服务器的运行负荷。

Description

一种基于HTTP的消息推送***及方法
技术领域
本发明涉及网络消息推送***及方法,特别是一种基于HTTP的消息推送***及方法。
背景技术
随着互联网应用多元化发展,网络应用技术也在不断地发展,各种服务器信息推送技术在网页即时通信等领域取得快速发展,越来越多的网站平台供应商需要及时将交易信息、更新数据信息发送给不同的用户,现有的消息推送***为了维护大量的线程,服务器的压力较大,效率较低。
发明内容
本发明提供一种基于HTTP的消息推送***及方法,以解决上述消息推送***为了维护大量的线程,服务器的压力较大,效率较低的技术问题。
为了解决上述技术问题,本发明提供一种基于HTTP的消息推送***,包括:
浏览器端模块:用于向服务器端发出建立浏览器HTTP长连接请求,并建立浏览器端HTTP长连接;还用于接收和显示服务器端推送过来的消息;
HTTP长连接模块:用于向服务器端发出建立服务器端HTTP长连接请求,通过Jetty的Continuation机制建立服务器端HTTP长连接,并将所述服务器端HTTP长连接信息存入长连接Map中;还用于建立浏览器HTTP长连接和服务器端HTTP长连接之间的长连接通道;
消息推送模块:用于接收需要推送的消息,从所述长连接Map中取出与所述需要推送的消息相匹配的长连接Continuation对象,通过Jetty的Continuation机制和所述长连接通道将消息推送到浏览器端模块。
进一步,所述长连接模块还包括连接检查维护模块:用于对所述长连接Map中的长连接定时地进行检查,删除超时的长连接,重新连接意外断开的长连接。
本发明的有益效果是:采用了延续(Continuation)方案解决异步请求,实现用少量线程维护大量的并发连接,提高了消息推送***的性能,降低了服务器的运行负荷。
本发明还提供基于HTTP的消息推送方法,包括以下步骤:
步骤S1:用户通过浏览器端向服务器端发出建立浏览器HTTP长连接请求;
步骤S2:用户通过浏览器端向服务器端发出建立服务器HTTP长连接请求,通过Jetty的Continuation机制建立服务器HTTP长连接,并将所述服务器端HTTP长连接信息存入长连接Map中;
步骤S3:建立浏览器HTTP长连接和服务器端HTTP长连接之间的长连接通道;
步骤S4:接收需要推送的消息,从长连接Map中取出与所述需要推送的消息相匹配的长连接Continuation对象;
步骤S5:通过Jetty的Continuation机制和长连接通道将消息推送到浏览器端。
进一步,还包括连接检查维护步骤,对所述长连接Map中的长连接定时地进行检查,删除超时的长连接,重新连接意外断开的长连接。
进一步,所述建立浏览器HTTP长连接步骤具体包括:
浏览器端向服务器端发出建立浏览器HTTP长连接请求;
服务器端返回消息给浏览器端;
如果服务器端返回消息是建立失败的消息,则浏览器端重新向服务器端发出建立浏览器HTTP长连接请求;
如果服务器端返回消息是建立成功的消息,则启动定时器,完成浏览器HTTP长连接建立。
进一步,所述建立服务器HTTP长连接步骤具体包括:
浏览器端向服务器端发出建立服务器HTTP长连接请求;
解析请求对象,如果请求对象为空,则返回失败消息并结束;
如果请求对象不为空,则获取,解析请求对象中的ID值,如果ID值为空,则返回失败消息并结束;
如果ID值不为空,根据请求对象建立Jetty的Continuation对象,并建立服务器HTTP长连接;
将服务器HTTP长连接存入长连接Map中。
进一步,还包括服务器HTTP长连接检查步骤,包括:
检查所述ID是否已经建立长连接,如果所述ID已经存在服务器HTTP长连接,则断开原来的服务器HTTP长连接,将新的服务器HTTP长连接加入长连接Map中;
如果所述ID不存在服务器HTTP长连接,则将所述服务器HTTP长连接加入长连接Map中。
本发明的有益效果是:采用了延续(Continuation)方法解决异步请求,实现用少量线程维护大量的并发连接,提高了消息推送***的性能;通过连接检查维护步骤,删除超时的长连接,降低了服务器的运行负荷;通过长连接Map中的对应ID检查,断开原来的长连接,避免推送消息时,新连接的阻塞。
附图说明
图1是本发明基于HTTP的消息推送***的结构框图,
图2是本发明基于HTTP的消息推送方法的流程图,
图3是本发明建立浏览器HTTP长连接的方法的流程图,
图4是本发明建立服务器HTTP长连接的方法的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
图1是本发明基于HTTP的消息推送***的结构框图,包括:
浏览器端模块:用于向服务器端发出建立浏览器HTTP长连接请求,并建立浏览器端HTTP长连接;还用于接收和显示服务器端推送过来的消息;
HTTP长连接模块:用于向服务器端发出建立服务器端HTTP长连接请求,通过Jetty的Continuation机制建立服务器端HTTP长连接,并将所述服务器端HTTP长连接信息存入长连接Map中;还用于建立浏览器HTTP长连接和服务器端HTTP长连接之间的长连接通道;
消息推送模块:用于接收需要推送的消息,从所述长连接Map中取出与所述需要推送的消息相匹配的长连接Continuation对象,通过Jetty的Continuation机制和所述长连接通道将消息推送到浏览器端模块。
进一步,所述长连接模块还包括连接检查维护模块:用于对所述长连接Map中的长连接定时地进行检查,删除超时的长连接,重新连接意外断开的长连接。
本发明的有益效果是:采用了延续(Continuation)方案解决异步请求,实现用少量线程维护大量的并发连接,提高了消息推送***的性能,降低了服务器的运行负荷。
图2是本发明基于HTTP的消息推送方法的流程图,包括以下步骤:
步骤S1:用户通过浏览器端向服务器端发出建立浏览器HTTP长连接请求;
步骤S2:用户通过浏览器端向服务器端发出建立服务器HTTP长连接请求,通过Jetty的Continuation机制建立服务器HTTP长连接,并将所述服务器端HTTP长连接信息存入长连接Map中;
步骤S3:建立浏览器HTTP长连接和服务器端HTTP长连接之间的长连接通道;
步骤S4:接收需要推送的消息,从长连接Map中取出与所述需要推送的消息相匹配的长连接Continuation对象;
步骤S5:通过Jetty的Continuation机制和长连接通道将消息推送到浏览器端。
图3是本发明建立浏览器HTTP长连接的方法的流程图,具体包括:
浏览器端向服务器端发出建立浏览器HTTP长连接请求;
服务器端返回消息给浏览器端;
如果服务器端返回消息是建立失败的消息,则浏览器端重新向服务器端发出建立浏览器HTTP长连接请求;
如果服务器端返回消息是建立成功的消息,则启动定时器,完成浏览器HTTP长连接建立。
图4是本发明建立服务器HTTP长连接的方法的流程图,体包括:
浏览器端向服务器端发出建立服务器HTTP长连接请求;
解析请求对象,如果请求对象为空,则返回失败消息并结束;
如果请求对象不为空,则获取,解析请求对象中的ID值,如果ID值为空,则返回失败消息并结束;
如果ID值不为空,根据请求对象建立Jetty的Continuation对象,并建立服务器HTTP长连接;
将服务器HTTP长连接存入长连接Map中。
本发明的有益效果是:采用了延续(Continuation)方法解决异步请求,实现用少量线程维护大量的并发连接,提高了消息推送***的性能;通过连接检查维护步骤,删除超时的长连接,降低了服务器的运行负荷;通过长连接Map中的对应ID检查,断开原来的长连接,避免推送消息时,新连接的阻塞。
以上对本发明分基于HTTP的消息推送***及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种基于HTTP的消息推送***,其特征在于,包括:
浏览器端模块:用于向服务器端发出建立浏览器HTTP长连接请求,并建立浏览器端HTTP长连接;还用于接收和显示服务器端推送过来的消息;
HTTP长连接模块:用于向服务器端发出建立服务器端HTTP长连接请求,通过Jetty的Continuation机制建立服务器端HTTP长连接,并将所述服务器端HTTP长连接信息存入长连接Map中;还用于建立浏览器HTTP长连接和服务器端HTTP长连接之间的长连接通道;
消息推送模块:用于接收需要推送的消息,从所述长连接Map中取出与所述需要推送的消息相匹配的长连接Continuation对象,通过Jetty的Continuation机制和所述长连接通道将消息推送到浏览器端模块。
2.根据权利要求1所述的基于HTTP的消息推送***,其特征在于,所述长连接模块还包括连接检查维护模块:用于对所述长连接Map中的长连接定时地进行检查,删除超时的长连接,重新连接意外断开的长连接。
3.一种基于HTTP的消息推送方法,其特征在于,包括以下步骤:
步骤S1:用户通过浏览器端向服务器端发出建立浏览器HTTP长连接请求;
步骤S2:用户通过浏览器端向服务器端发出建立服务器HTTP长连接请求,通过Jetty的Continuation机制建立服务器HTTP长连接,并将所述服务器端HTTP长连接信息存入长连接Map中;
步骤S3:建立浏览器HTTP长连接和服务器端HTTP长连接之间的长连接通道;
步骤S4:接收需要推送的消息,从长连接Map中取出与所述需要推送的消息相匹配的长连接Continuation对象;
步骤S5:通过Jetty的Continuation机制和长连接通道将消息推送到浏览器端。
4.根据权利要求3所述的基于HTTP的消息推送方法,其特征在于,还包括连接检查维护步骤,对所述长连接Map中的长连接定时地进行检查,删除超时的长连接,重新连接意外断开的长连接。
5.根据权利要求3所述的基于HTTP的消息推送方法,其特征在于,所述建立浏览器HTTP长连接步骤具体包括:
浏览器端向服务器端发出建立浏览器HTTP长连接请求;
服务器端返回消息给浏览器端;
如果服务器端返回消息是建立失败的消息,则浏览器端重新向服务器端发出建立浏览器HTTP长连接请求;
如果服务器端返回消息是建立成功的消息,则启动定时器,完成浏览器HTTP长连接建立。
6.根据权利要求3所述的基于HTTP的消息推送方法,其特征在于,所述建立服务器HTTP长连接步骤具体包括:
浏览器端向服务器端发出建立服务器HTTP长连接请求;
解析请求对象,如果请求对象为空,则返回失败消息并结束;
如果请求对象不为空,则获取,解析请求对象中的ID值,如果ID值为空,则返回失败消息并结束;
如果ID值不为空,根据请求对象建立Jetty的Continuation对象,并建立服务器HTTP长连接;
将服务器HTTP长连接存入长连接Map中。
7.根据权利要求6所述的基于HTTP的消息推送方法,其特征在于,还包括服务器HTTP长连接检查步骤,包括:
检查所述ID是否已经建立长连接,如果所述ID已经存在服务器HTTP长连接,则断开原来的服务器HTTP长连接,将新的服务器HTTP长连接加入长连接Map中;
如果所述ID不存在服务器HTTP长连接,则将所述服务器HTTP长连接加入长连接Map中。
CN201410570675.XA 2014-10-23 2014-10-23 一种基于http的消息推送***及方法 Pending CN104333577A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410570675.XA CN104333577A (zh) 2014-10-23 2014-10-23 一种基于http的消息推送***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410570675.XA CN104333577A (zh) 2014-10-23 2014-10-23 一种基于http的消息推送***及方法

Publications (1)

Publication Number Publication Date
CN104333577A true CN104333577A (zh) 2015-02-04

Family

ID=52408226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410570675.XA Pending CN104333577A (zh) 2014-10-23 2014-10-23 一种基于http的消息推送***及方法

Country Status (1)

Country Link
CN (1) CN104333577A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105391776A (zh) * 2015-10-20 2016-03-09 上海斐讯数据通信技术有限公司 长连接消息的通信方法及***
CN106899652A (zh) * 2016-07-20 2017-06-27 阿里巴巴集团控股有限公司 一种推送业务处理结果的方法及装置
CN107105064A (zh) * 2017-06-02 2017-08-29 上海艾融软件股份有限公司 一种交易信息的推送方法及***
CN109040296A (zh) * 2018-08-30 2018-12-18 上海艾融软件股份有限公司 一种基于长连接的数据推送方法及***
CN109547511A (zh) * 2017-09-22 2019-03-29 ***通信集团浙江有限公司 一种web消息实时推送方法、服务器、客户端及***
CN114125026A (zh) * 2021-11-24 2022-03-01 四川长虹电器股份有限公司 用于广告机的通信方法及广告机

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111510A1 (en) * 2002-12-06 2004-06-10 Shahid Shoaib Method of dynamically switching message logging schemes to improve system performance
CN102447719A (zh) * 2010-10-12 2012-05-09 上海遥薇(集团)有限公司 Web GIS服务的动态负载均衡信息处理***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111510A1 (en) * 2002-12-06 2004-06-10 Shahid Shoaib Method of dynamically switching message logging schemes to improve system performance
CN102447719A (zh) * 2010-10-12 2012-05-09 上海遥薇(集团)有限公司 Web GIS服务的动态负载均衡信息处理***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨文婷: "《基于HTTP长连接的消息推送平台的研究与实现》", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105391776A (zh) * 2015-10-20 2016-03-09 上海斐讯数据通信技术有限公司 长连接消息的通信方法及***
CN106899652A (zh) * 2016-07-20 2017-06-27 阿里巴巴集团控股有限公司 一种推送业务处理结果的方法及装置
CN107105064A (zh) * 2017-06-02 2017-08-29 上海艾融软件股份有限公司 一种交易信息的推送方法及***
CN109547511A (zh) * 2017-09-22 2019-03-29 ***通信集团浙江有限公司 一种web消息实时推送方法、服务器、客户端及***
CN109547511B (zh) * 2017-09-22 2022-02-22 ***通信集团浙江有限公司 一种web消息实时推送方法、服务器、客户端及***
CN109040296A (zh) * 2018-08-30 2018-12-18 上海艾融软件股份有限公司 一种基于长连接的数据推送方法及***
CN109040296B (zh) * 2018-08-30 2021-04-06 上海艾融软件股份有限公司 一种基于长连接的数据推送方法及***
CN114125026A (zh) * 2021-11-24 2022-03-01 四川长虹电器股份有限公司 用于广告机的通信方法及广告机
CN114125026B (zh) * 2021-11-24 2023-09-05 四川长虹电器股份有限公司 用于广告机的通信方法及广告机

Similar Documents

Publication Publication Date Title
CN104333577A (zh) 一种基于http的消息推送***及方法
US9087071B2 (en) Gathering transaction data associated with locally stored data files
CN104980289B (zh) 消息推送方法、装置和***
CN103534980B (zh) 利用反馈消息提供推送服务的***和方法
CN103179133B (zh) 基于实体类的客户端与服务器通信的方法
CN103281359A (zh) 云桌面***及运行方法
CN103530160A (zh) 一种页面加载的方法和装置
CN103179099B (zh) 一种接入开放网站平台的统一认证方法和一种网站平台
CN104539682A (zh) 移动网页的调试方法、装置、移动终端、服务器以及***
CN103347092A (zh) 一种识别缓存文件的方法及装置
Pande et al. Enhanced web application and browsing performance through service-worker infusion framework
CN103324735A (zh) 浏览器中异常页面的加载方法、装置和客户端
CN102790727A (zh) 一种动态推送用户个人标签的方法和***
CN104123125A (zh) 网页资源的获取方法及装置
CN105099796A (zh) 一种多媒体内容更改检测方法、装置及资源传播***
CN103136290A (zh) 网页脚本文件处理方法及处理装置
CN104270362A (zh) 请求处理方法和装置
CN113704004B (zh) 通知服务的实现方法、装置、设备以及存储介质
CN203301532U (zh) 云桌面***
CN104408178A (zh) Web控件加载装置和方法
CN103138871B (zh) 移动通讯***中应用程序的服务器数据处理***和方法
CN104243272A (zh) 一种媒体消息推送方法和装置
CN103488480A (zh) 一种页面显示方法及***
CN107729032A (zh) 开机动画更新方法、智能终端及可存储介质
CN108108400B (zh) 一种api基于本地数据增量的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150204

RJ01 Rejection of invention patent application after publication