CN104333577A - 一种基于http的消息推送***及方法 - Google Patents
一种基于http的消息推送***及方法 Download PDFInfo
- 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
Links
Classifications
-
- 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
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/4061—Push-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长连接请求,通过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中。
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)
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)
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服务的动态负载均衡信息处理*** |
-
2014
- 2014-10-23 CN CN201410570675.XA patent/CN104333577A/zh active Pending
Patent Citations (2)
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)
Title |
---|
杨文婷: "《基于HTTP长连接的消息推送平台的研究与实现》", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (9)
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 |