CN114900510A - 一种信息推送方法及服务器、客户端、存储介质 - Google Patents
一种信息推送方法及服务器、客户端、存储介质 Download PDFInfo
- Publication number
- CN114900510A CN114900510A CN202210323009.0A CN202210323009A CN114900510A CN 114900510 A CN114900510 A CN 114900510A CN 202210323009 A CN202210323009 A CN 202210323009A CN 114900510 A CN114900510 A CN 114900510A
- Authority
- CN
- China
- Prior art keywords
- information
- client
- server
- control protocol
- pushed
- 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
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000003860 storage Methods 0.000 title claims abstract description 70
- 230000005540 biological transmission Effects 0.000 claims abstract description 137
- 230000015654 memory Effects 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
Images
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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Abstract
本申请实施例公开了一种信息推送方法及服务器、客户端、存储介质,包括:在接收到客户端传输的超文本传输请求的情况下,根据超文本传输请求建立与客户端之间的传输控制协议连接;将传输控制协议连接添加至存储池中,存储池中包括至少一个传输控制协议连接;在获取到与客户端对应的待推送信息的情况下,利用存储池中的传输控制协议连接将待推送信息推送至客户端。
Description
技术领域
本申请涉及信息推送技术领域,尤其涉及一种信息推送方法及服务器、客户端、存储介质。
背景技术
随着互联网技术的高速发展,网络的使用量逐渐增加,为了提升网页的加载速度,服务器会预测浏览器可能使用到的资源,并将这些资源推送至客户端,以供浏览器使用资源时直接从浏览器所处的客户端内存中获取。
现有技术中,是服务器在接收到客户端发送的超文本传输协议(HypertextTransfer Protocol,HTTP)请求的情况下,获取与该HTTP请求对应的请求信息,并获取需要推送的信息,在向客户端发送请求信息时携带需要推送的信息,如此降低了服务器向客户端推送信息时的速度。
发明内容
为解决上述技术问题,本申请实施例期望提供一种信息推送方法及服务器、客户端、存储介质,能够提高推送信息时的速度。
本申请的技术方案是这样实现的:
本申请实施例提供一种信息推送方法,应用于服务器,所述信息推送方法包括:
在接收到客户端传输的超文本传输请求的情况下,根据所述超文本传输请求建立与所述客户端之间的传输控制协议连接;
将所述传输控制协议连接添加至存储池中,所述存储池中包括至少一个传输控制协议连接;
在获取到与所述客户端对应的待推送信息的情况下,利用所述存储池中的所述传输控制协议连接将所述待推送信息推送至所述客户端。
本申请实施例又提供一种信息推送方法,应用于客户端,所述信息推送方法包括:
向服务器发送超文本传输请求;以根据所述超文本传输请求建立与所述服务器之间的传输控制协议连接;
将所述传输控制协议连接添加至连接池中,并根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息。
本申请实施例提供了一种服务器,所述服务器包括:
建立单元,用于在接收到客户端传输的超文本传输请求的情况下,根据所述超文本传输请求建立与所述客户端之间的传输控制协议连接;
第一添加单元,用于将所述传输控制协议连接添加至存储池中,所述存储池中包括至少一个传输控制协议连接;
推送单元,用于在获取到与所述客户端对应的待推送信息的情况下,利用所述存储池中的所述传输控制协议连接将所述待推送信息推送至所述客户端。
本申请实施例提供了一种客户端,所述客户端包括:
传输单元,用于向服务器发送超文本传输请求;以根据所述超文本传输请求建立与所述服务器之间的传输控制协议连接;
添加单元,用于将所述传输控制协议连接添加至连接池中;
第二接收单元,用于根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息。
本申请实施例又提供了一种服务器,所述服务器包括:
第一存储器、第一处理器和第一通信总线,所述第一存储器通过所述第一通信总线与所述第一处理器进行通信,所述第一存储器存储所述第一处理器可执行的信息推送的程序,当所述信息推送的程序被执行时,通过所述第一处理器执行上述所述的应用于服务器中的信息推送方法。
本申请实施例又提供了一种客户端,所述客户端包括:
第二存储器、第二处理器和第二通信总线,所述第二存储器通过所述第二通信总线与所述第二处理器进行通信,所述第二存储器存储所述第二处理器可执行的信息推送的程序,当所述信息推送的程序被执行时,通过所述第二处理器执行上述所述的应用于客户端中的信息推送方法。
本申请实施例提供了一种存储介质,其上存储有计算机程序,应用于客户端和服务器,其特征在于,该计算机程序被第一处理器执行时实现上述所述的应用于服务器中的信息推送方法;该计算机程序被第二处理器执行时实现上述所述的应用于客户端中的信息推送方法。
本申请实施例提供了一种信息推送方法及服务器、客户端、存储介质,信息推送方法包括:在接收到客户端传输的超文本传输请求的情况下,根据超文本传输请求建立与客户端之间的传输控制协议连接;将传输控制协议连接添加至存储池中,存储池中包括至少一个传输控制协议连接;在获取到与客户端对应的待推送信息的情况下,利用存储池中的传输控制协议连接将待推送信息推送至客户端。采用上述方法实现方案,服务器在建立了与客户端之间的传输控制协议连接之后,服务器通过将传输控制协议连接添加至存储池中,利用存储池来将传输控制协议连接进行存储,使得服务器在获取到待推送信息的情况下,服务器可以直接利用该传输控制协议连接向该客户端推送待推送信息,提高了推送待推送信息时的速度。
附图说明
图1(a)为本申请实施例提供的一种现有技术中的HTTP持久性连接示意图一;
图1(b)为本申请实施例提供的一种现有技术中的HTTP持久性连接示意图二;
图1(c)为本申请实施例提供的一种现有技术中的HTTP持久性连接示意图三;
图2为本申请实施例提供的一种现有技术中的HTTP/2服务推送协议示意图;
图3为本申请实施例提供的一种信息推送方法流程图一;
图4为本申请实施例提供的一种信息推送方法流程图二;
图5为本申请实施例提供的一种示例性的改进的HTTP/2服务推送协议示意图;
图6为本申请实施例提供的一种示例性的信息推送结构示意图;
图7为本申请实施例提供的一种服务器的组成结构示意图一;
图8本申请实施例提供的一种服务器的组成结构示意图二;
图9为本申请实施例提供的一种客户端的组成结构示意图一;
图10为本申请实施例提供的一种客户端组成结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1(a)所示:HTTP1.0无复用,是服务器在接收到客户端发送的HTTP请求时,就获取该HTTP请求对应的请求信息;将该请求信息传输至客户端处,且客户端接收到该请求信息与客户端下一个发送HTTP请求之间需要间隔一段时间;如图1(b)所示:HTTP1.1是连接复用,服务器在接收到客户端发送的HTTP请求时,就获取该HTTP请求对应的请求信息;将该请求信息传输至客户端处,且客户端接收到该请求信息与客户端下一个发送HTTP请求之间不需要间隔;如图1(c)所示:HTTP/2是多路复用,服务器在接收到客户端发送的HTTP请求时,就获取该HTTP请求对应的请求信息;将该请求信息传输至客户端处,在客户端还未接收到该请求信息的情况下,客户端就可以向服务器发送下一个HTTP请求。
如图2所示:客户端向服务器发送超文本传输请求(index.html请求,具体包括:stream 1type:1;method get;path/index.html;…);服务器并获取与该HTTP请求对应的请求信息(stream 1type:1;date xxxx;cache-controller…),服务器还会获取需要推送的信息,服务器向客户端传输该请求信息和需要推送的信息;其中,需要推送的信息包括index.css信息和index.js信息。需要说明的是,index.css信息包括Push promise帧-推送序言(stream 2 type:5;method get;path/index.css;authority ip:443;schemehttps)、Header帧-Header(stream 2 type:1;status 200;content-type xx;content-length xxx;…)、Date帧-body(stream 2 type:0;body{…}…);index.js信息包括Pushpromise帧-推送序言(stream 4 type:5;method get;path/index.js;authority ip:443;scheme https)、Header帧-Header(stream 4 type:1;status 200;content-type xx;content-length xxx;…)、Date帧-body(stream 4 type:0;function click(){…}…)。
本申请实施例提供了一种信息推送方法,一种信息推送方法应用于服务器,图3为本申请实施例提供的一种信息推送方法流程图,如图3所示,信息推送方法可以包括:
S101、在接收到客户端传输的超文本传输请求的情况下,根据超文本传输请求建立与客户端之间的传输控制协议连接。
本申请实施例提供的一种信息推送方法适用于服务器向客户端发送待推送信息的场景下。
在本申请实施例中,服务器可以以各种形式来实施。例如,本申请中描述的服务器可以包括诸如手机、照相机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(PersonalDigital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等装置,以及诸如数字TV、台式计算机、服务器等装置。
在本申请实施例中,超文本传输请求可以为HTTP请求。传输控制协议连接可以为传输控制协议(Transmission Control Protocol,TCP)连接。
在本申请实施例中,服务器根据超文本传输请求建立与客户端之间的传输控制协议连接的过程,为现有技术中建立服务器与客户端之间的TCP连接方式,具体的本申请实施例在此不作具体的阐述。
在本申请实施例中,客户端为集成支持HTTP/2的开源网络库的客户端;且该客户端已打开HTTP/2Setting帧的推送(Push)开关。
在本申请实施例中,服务器根据超文本传输请求建立与客户端之间的传输控制协议连接的过程,可以为服务器设置连接的唯一编码(uuid)/用户身份标识(userid)的,响应状态码为204的HTTP请求路径(Path),在应用程序(Application,App)启动时,用于建立TCP连接(若App启动发Http请求靶服务器,则不定义此Path)。
需要说明的是,响应状态码为204的请求是指没有响应信息的请求。
在本申请实施例中,服务器中的职责推送Server服务分为推送工作(Worker)和推送管理(Manager),即服务器分为推送Worker和推送Manager。其中,Worker用于收集和管理HTTP的TCP长连接、发送推送消息和反向代理靶服务器的Http请求;Manger用于Worker的注册、管理、给Worker下达推送任务、提供内容管理系统(content management system,cms)应用程序接口(Application Programming Interface,api)等。Manger和Worker之间可以通过消息队列(MQ)进行通信。
在本申请实施例中,服务器先生成服务器证书(Secure socket layer,SSL)、搭建Netty HTTP/2容器作推送Worker,开启Http gzip压缩,使用443端口,用于响应HTTP/2网络请求;服务器推送Worker添加有反向代理功能,使用配置文件push.properties可以读取靶服务器端口(port),Worker在启动时读取靶服务器端口的端口号,反向代理靶服务器的http请求(只做了一次http://localhost:port/{{path}}的网络访问)。
需要说明的是,Netty为以异步事件驱动的网络应用程序框架和工具,用于实现HTTP/2协议的解析与响应。
需要说明的是,搭建推送Manager,集成消息队列(MQ),可以通过MQ给推送Worker下达推送任务,提供cms推送和api接口等。部署推送Worker和推送Manager,并设置push.properties配置文件,内容为靶服务器使用的端口(由于443端口用于推送Worker,故此处的端口可以为除443端口外的其他端口),部署推送Worker至靶机。推送Manager可以单独部署。
还需要说明的是,CMS推送是指:在网页上操作推送某个任务。
在本申请实施例中,复用频繁访问的HTTP/2的TCP连接作为TCP长连接通道,HTTP/2的服务器称为靶服务器,其所在的主机称为靶机。
S102、将传输控制协议连接添加至存储池中,存储池中包括至少一个传输控制协议连接。
在本申请实施例中,服务器根据超文本传输请求建立与客户端之间的传输控制协议连接之后,服务器就将传输控制协议连接添加至存储池中。
需要说明的是,存储池中包括至少一个传输控制协议连接。
在本申请实施例中,存储池可以为全局Map;存储池也可以为其他的存储区域;具体的存储池可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,服务器将传输控制协议连接添加至存储池中之前,服务器还会配置传输控制协议连接与客户端之间的对应关系;相应的,服务器将传输控制协议连接添加至存储池中的过程,包括:服务器将传输控制协议连接与客户端之间的对应关系和传输控制协议连接添加至存储池中。
在本申请实施例中,服务器在建立了TCP连接之后,服务器可以在HTTP/2请求传输结束(Netty HTTP/2OnSettingsAckRead回调),建立服务器与客户端之间的传输控制协议连接之后,服务器就把TCP连接放入存储池(全局Map)内,其中,全局Map的键为Http请求带的客户端uuid/userid参数,Map的值为TCP连接(userid为tcp列表)。
在本申请实施例中,服务器将传输控制协议连接添加至存储池中之后,服务器还会在传输控制协议连接断开的情况下,从存储池中删除传输控制协议连接。
S103、在获取到与客户端对应的待推送信息的情况下,利用存储池中的传输控制协议连接将待推送信息推送至客户端。
在本申请实施例中,服务器将传输控制协议连接添加至存储池中之后,服务器在获取到与客户端对应的待推送信息的情况下,服务器就利用存储池中的传输控制协议连接将待推送信息推送至客户端。
在本申请实施例中,待推送信息可以为层叠样式表(Cascading Style Sheets,CSS)资源;待推送信息也可以为javascript(JS)资源;待推送信息还可以为其他的信息;具体的待推送信息可以根据实际情况进行确定,本申请实施例对此不作限定。
需要说明的是,待推送信息为客户端会用到的信息。
在本申请实施例中,服务器利用存储池中的传输控制协议连接将待推送信息推送至客户端的过程,包括:服务器获取原始推送服务对应的原始头帧和原始信息帧;服务器确定待推送信息对应的客户端推送路径;并将客户端推送路径添加至原始头帧中,得到头帧;服务器将所述待推送信息添加至原始信息帧中,得到信息帧;服务器根据信息帧和头帧得到待推送服务;并利用传输控制协议连接将待推送服务推送至客户端。
在本申请实施例中,服务器将所述待推送信息添加至原始信息帧中,得到信息帧的过程,包括服务器对待推送信息进行加密,得到加密信息,之后服务器就将加密信息添加至原始信息帧中,得到信息帧;服务器也可以对待推送信息进行压缩,得到压缩信息,之后服务器就将压缩信息添加至原始信息帧中,得到信息帧;服务器还可以直接将待推送信息添加至原始信息帧中,得到信息帧;具体的服务器将所述待推送信息添加至原始信息帧中,得到信息帧的过程可以根据实际情况进行确定,本申请实施例对此不作限定。
需要说明的是,服务器对待推送信息进行加密,得到加密信息的方式,可以为服务器利用高级加密标准(Advanced Encryption Standard,AES)对待推送信息进行加密,得到加密信息;服务器也可以利用其他方式对待推送信息进行加密,得到加密信息;具体的服务器对待推送信息进行加密,得到加密信息的方式可以根据实际情况进行确定,本申请实施例对此不作限定。
还需要说明的是,服务器利用AES对待推送信息进行加密,得到加密信息时的加密密钥可以为利用魔数、设备uuid、流ID和路径指定算法动态生成。
在本申请实施例中,在推送Worker通过消息队列(MQ)接收到推送Manager下发的推送任务的情况下,服务器就从存储池(全局Map)中获取与该客户端对应的传输控制协议连接(TCP连接),利用客户端推送路径添加至原始头帧(header帧)并设置header帧中的状态(status)值为200,将待推送信息(数据aes加密)后添加至信息帧(Data帧)中,并将头帧和信息帧推给给客户端。
在本申请实施例中,服务器还会修改Netty的HTTP/2解析源码,删除Push Promise帧对应的相关校验和逻辑处理。
需要说明的是,服务器向客户端推送待推送信息的过程中会连接发送三种帧给客户端,第一帧是Push Promise帧,Push Promise帧内有被推送资源的Path、Method(预测的http方法)、Scheme、Authority、推送流ID(偶数)和的主动网络请求的流ID(奇数)等,客户端在收到Push Promise帧的情况下,客户端会检查客户端是否已开启推送、主请求的流当前状态是否能接收Push、建立Path与推送流ID映射关系等,之后服务器还会发送第二帧即Header(Http头)、第三帧即Data(Http body)帧。在本申请实施例中,删除了Push Promise帧(即不发送Push Promise帧)以及Push Promise帧对应的后续检查、相关校验和逻辑处理,把Push Pomise帧内的Path添加至Header帧中下发,只使用Header和Data帧完成待推送信息的推送过程。
在本申请实施例中,服务器利用存储池中的传输控制协议连接将待推送信息推送至客户端之后,服务器还会接收客户端传输的推送成功的响应信息。
需要说明的是,推送成功的响应信息可以为ACK帧;推送成功的响应信息也可以为其他形式的响应信息;具体的推送成功的响应信息可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,服务器还配置有推送成功回执Ack帧(0x0A)的解析和处理。Ack帧对应流的ID为推送流的ID。
需要说明的是,ACK帧的格式与Ping帧的格式相同。
可以理解的是,服务器在建立了与客户端之间的传输控制协议连接之后,服务器通过将传输控制协议连接添加至存储池中,利用存储池来将传输控制协议连接进行存储,使得服务器在获取到待推送信息的情况下,服务器可以直接利用该传输控制协议连接向该客户端推送待推送信息,提高了推送待推送信息时的速度。
本申请实施例又提供了一种信息推送方法,应用于客户端中,图4为本申请实施例提供的一种信息推送方法流程图二,如图4所示,信息推送方法可以包括:
S201、向服务器发送超文本传输请求;以根据超文本传输请求建立与服务器之间的传输控制协议连接。
本申请实施例提供的一种信息推送方法适用于服务器向客户端发送待推送信息的场景下。
在本申请实施例中,客户端可以以各种形式来实施。例如,本申请中描述的客户端可以包括诸如手机、照相机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(PersonalDigital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等装置,以及诸如数字TV、台式计算机等装置。
在本申请实施例中,超文本传输请求可以为HTTP请求。传输控制协议连接可以为传输控制协议(Transmission Control Protocol,TCP)连接。
在本申请实施例中,服务器根据超文本传输请求建立与客户端之间的传输控制协议连接的过程,为现有技术中建立服务器与客户端之间的TCP连接方式,具体的本申请实施例在此不作具体的阐述。
在本申请实施例中,客户端为集成支持HTTP/2的开源网络库的客户端;且该客户端已打开HTTP/2Setting帧的推送(Push)开关。
在本申请实施例中,客户端为修改了网络库,即删除了Push Promise帧及前后相关校验,在Stream ID为偶数时直接解析下发的待推送服务中的头帧(Header)和信息帧(Data)。
需要说明的是,服务器向客户端推送待推送信息的过程中会连接发送三种帧给客户端,第一帧是Push Promise帧,Push Promise帧内有被推送资源的Path、Method(预测的http方法)、Scheme、Authority、推送流ID(偶数)和的主动网络请求的流ID(奇数)等,客户端在收到Push Promise帧的情况下,客户端会检查客户端是否已开启推送、主请求的流当前状态是否能接收Push、建立Path与推送流ID映射关系等,之后服务器还会发送第二帧即Header(Http头)、第三帧即Data(Http body)帧。在本申请实施例中,删除了Push Promise帧(即不发送Push Promise帧)以及Push Promise帧对应的后续检查、相关校验和逻辑处理,把Push Pomise帧内的Path添加至Header帧中下发,只使用Header和Data帧完成待推送信息的推送过程。
在本申请实施例中,客户端向服务器发送超文本传输请求之后,客户端还会获取超文本传输请求的发送时间;客户端根据发送时间调整下一次向服务器发送心跳信息的第一时间;客户端在第一时间到达时,向服务器发送下一心跳信息。
在本申请实施例中,HTTP/2提供心跳(PING)机制来保持连接和计算RTT往返时间,可以通过复用该PING,来实现RTT时间优化心跳发送间隔。客户端启用HTTP/2的心跳功能,把Http请求也作为一次心跳,根据心跳帧的网络往返时间Round-Trip Time(RTT)来优化下一次心跳发送间隔。
需要说明的时,客户端可以间隔预设时间段就向服务器发送一次心跳帧,如间隔5分钟会向服务器发送一次心跳帧,即1分钟时向服务器发送一次心跳帧,间隔5分钟后再向服务器发送一次心跳帧,在第7分钟时,得到了超文本传输请求,则在第7分钟时向服务器发送超文本传输请求,经过5分钟后,即第12分钟时,则继续向服务器发送心跳帧,…。
S202、将传输控制协议连接添加至连接池中,并根据连接池中的传输控制协议连接接收服务器传输的待推送信息。
在本申请实施例中,客户端向服务器发送超文本传输请求;以根据超文本传输请求建立与服务器之间的传输控制协议连接之后,客户端就可以将传输控制协议连接添加至连接池中,并根据连接池中的传输控制协议连接接收服务器传输的待推送信息了。
在本申请实施例中,连接池中包括至少一个传输控制协议连接。
在本申请实施例中,客户端把用于推送的HTTP/2的TCP长连接(传输控制协议连接)放入复用连接池(连接池)中,加白名单,对于该传输控制协议连接永不做主动释放和淘汰处理,并添加TCP防杀和自动重启(若要求支持App离线推送)。
在本申请实施例中,客户端根据连接池中的传输控制协议连接接收服务器传输的待推送信息的过程,还包括:客户端根据传输控制协议连接接收服务器传输的待推送服务;相应的,客户端根据连接池中的传输控制协议连接接收服务器传输的待推送信息的过程,包括:客户端从待推送服务中获取头帧和信息帧;客户端从头帧中获取客户端推送路径;并从信息中获取待推送信息;客户端向客户端推送路径对应的目标应用传输待推送信息。
在本申请实施例中,客户端提供推送信息注册和信息分发入口,客户端在收到待推送服务的情况下,客户端先对信息帧(Data帧)内的加密信息进行解密得到待推送信息,之后客户客户端再根据头帧(Header)中的路径(Path)将待推送信息传输至对应的注册者(如,应用)。
在本申请实施例中,客户端根据连接池中的传输控制协议连接接收服务器传输的待推送信息之后,客户端还会向服务器发送推送成功的响应信息。
在本申请实施例中,推送成功的响应信息可以为ACK帧;推送成功的响应信息也可以为其他形式的响应信息;具体的推送成功的响应信息可以根据实际情况进行确定,本申请实施例对此不作限定。
在本申请实施例中,客户端在接收搭配Header帧、Data帧的情况下,客户端就发送ACK帧(帧类型0x0A)至服务端,其中,ACK帧的格式与Ping帧的格式相同。ACK帧对应流的ID为推送流的ID。
示例性的,Push协议如图5所示:客户端向服务器发送超文本传输请求(index.html请求,具体包括:stream 1 type:1;method get;path/index.html;…);服务器并获取与该HTTP请求对应的请求信息(stream 1 type:1;date xxxx;cache-controller…),服务器向客户端传输该请求信息;服务器根据超文本传输请求建立与客户端之间的传输控制协议连接;服务器将传输控制协议连接添加至存储池中;客户端将传输控制协议连接添加至连接池中,在服务器获取到与客户端对应的待推送信息(x.json或者xx.pb)的情况下,服务器利用存储池中的传输控制协议连接将待推送信息推送至客户端,客户端在接收到待推送信息的情况下,客户端就向服务器发送推送成功的响应信息(ACK帧)。
需要说明的是,x.json包括:推送业务标识(stream 2n type:1;status:200;path/业务xxx)和推送报文(stream 2n type:0{“xx”;“xxx”})。xx.pb包括:推送业务标识(stream 2n+2 type:1;status:200;path/业务xxxxx)和推送报文(stream 2n+2 type:0;0101111000…)。
示例性的,如图6所示:推送manager获取推送CMS(包括信息来源:businessid;信息内容(msg):hello;客户端(user):xxxx),推送manager在数据库(DB)中,根据businessid查询推送路径(path),之后推送manager就根据获取的信息建立推送任务,并广播该推送任务(path:/xxx;客户端:xxxx;msg:010100111…)至各个靶机的推送worker,推送worker从该推送任务中获取待推送信息(header帧、data帧:aes(msg)),并将该推送信息推送至对应的客户端(APP)。推送worker也可以通过反向代理至靶服务器Http或者nginx。服务器也是通过推送worker接收APP传输的Http请求。
可以理解的是,客户端在根据超文本传输请求与服务器之间建立了传输控制协议连接之后,客户端通过将传输控制协议连接添加至连接池中,利用连接池来存储传输控制协议连接,使得客户端可以利用传输控制协议连接来及时接收服务器发送的待推送信息,提高了推送待推送信息时的速度。
基于应用于服务器中的信息推送方法同一发明构思,本申请实施例提供了一种服务器1,对应于一种应用于服务器中的信息推送方法;图7为本申请实施例提供的一种服务器的组成结构示意图一,该服务器1可以包括:
建立单元11,用于在接收到客户端传输的超文本传输请求的情况下,根据所述超文本传输请求建立与所述客户端之间的传输控制协议连接;
第一添加单元12,用于将所述传输控制协议连接添加至存储池中,所述存储池中包括至少一个传输控制协议连接;
推送单元13,用于在获取到与所述客户端对应的待推送信息的情况下,利用所述存储池中的所述传输控制协议连接将所述待推送信息推送至所述客户端。
在本申请的一些实施例中,所述服务器还包括第一获取单元和确定单元;
所述第一获取单元,用于获取原始推送服务对应的原始头帧和原始信息帧;
所述确定单元,用于确定待推送信息对应的客户端推送路径;
所述第一添加单元12,用于将所述客户端推送路径添加至原始头帧中,得到头帧;将所述待推送信息添加至所述原始信息帧中,得到信息帧;根据所述信息帧和所述头帧得到待推送服务;
所述推送单元13,用于利用所述传输控制协议连接将所述待推送服务推送至所述客户端。
在本申请的一些实施例中,所述服务器还包括配置单元;
所述配置单元,用于配置所述传输控制协议连接与所述客户端之间的对应关系;
相应的,所述第一添加单元12,用于将所述传输控制协议连接与所述客户端之间的对应关系和所述传输控制协议连接添加至所述存储池中。
在本申请的一些实施例中,所述服务器还包括删除单元;
所述删除单元,用于在所述传输控制协议连接断开的情况下,从所述存储池中删除所述传输控制协议连接。
在本申请的一些实施例中,所述服务器还包括第一接收单元;
所述第一接收单元,用于接收所述客户端传输的推送成功的响应信息。
需要说明的是,在实际应用中,上述建立单元11、第一添加单元12和推送单元13可由服务器1上的第一处理器14实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现;上述数据存储可由服务器1上的第一存储器15实现。
本申请实施例还提供了一种服务器1,如图8所示,所述服务器1包括:第一处理器14、第一存储器15和第一通信总线16,所述第一存储器15通过所述第一通信总线16与所述第一处理器14进行通信,所述第一存储器15存储所述第一处理器14可执行的程序,当所述程序被执行时,通过所述第一处理器14执行如上述所述的信息推送方法。
在实际应用中,上述第一存储器15可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向第一处理器14提供指令和数据。
本申请实施例提供了一种计算机可读存储介质,其上有计算机程序,所述程序被第一处理器14执行时实现如上述所述的信息推送方法。
可以理解的是,服务器在建立了与客户端之间的传输控制协议连接之后,服务器通过将传输控制协议连接添加至存储池中,利用存储池来将传输控制协议连接进行存储,使得服务器在获取到待推送信息的情况下,服务器可以直接利用该传输控制协议连接向该客户端推送待推送信息,提高了推送待推送信息时的速度。
本申请实施例提供了一种客户端2,对应于一种应用于客户端中的信息推送方法;图9为本申请实施例提供的一种客户端的组成结构示意图一,该客户端2可以包括:
传输单元21,用于向服务器发送超文本传输请求;以根据所述超文本传输请求建立与所述服务器之间的传输控制协议连接;
第二添加单元22,用于将所述传输控制协议连接添加至连接池中;
第二接收单元23,用于根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息。
在本申请的一些实施例中,所述第二接收单元23,用于根据所述传输控制协议连接接收所述服务器传输的待推送服务;
相应的,所述客户端还包括第二获取单元;
所述第二获取单元,用于从所述待推送服务中获取头帧和信息帧;从所述头帧中获取客户端推送路径;并从所述信息中获取所述待推送信息;
所述传输单元21,用于向所述客户端推送路径对应的目标应用传输所述待推送信息。
在本申请的一些实施例中,所述客户端还包括调整单元和发送单元;
所述第二获取单元,用于获取所述超文本传输请求的发送时间;
所述调整单元,用于根据所述发送时间调整下一次向所述服务器发送心跳信息的第一时间;
所述发送单元,用于在所述第一时间到达时,向所述服务器发送所述下一心跳信息。
在本申请的一些实施例中,所述发送单元,用于向服务器发送推送成功的响应信息。
需要说明的是,在实际应用中,上述传输单元21、第二添加单元22和第二接收单元23可由客户端2上的第二处理器24实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现;上述数据存储可由客户端2上的第二存储器25实现。
本申请实施例还提供了一种客户端2,如图10所示,所述客户端2包括:第二处理器24、第二存储器25和第二通信总线26,所述第二存储器25通过所述第二通信总线26与所述第二处理器24进行通信,所述第二存储器25存储所述第二处理器24可执行的程序,当所述程序被执行时,通过所述第二处理器24执行如上述所述的信息推送方法。
在实际应用中,上述第二存储器25可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向第二处理器24提供指令和数据。
本申请实施例提供了一种计算机可读存储介质,其上有计算机程序,所述程序被第二处理器24执行时实现如上述所述的信息推送方法。
可以理解的是,客户端在根据超文本传输请求与服务器之间建立了传输控制协议连接之后,客户端通过将传输控制协议连接添加至连接池中,利用连接池来存储传输控制协议连接,使得客户端可以利用传输控制协议连接来及时接收服务器发送的待推送信息,提高了推送待推送信息时的速度。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (14)
1.一种信息推送方法,其特征在于,所述方法包括:
在接收到客户端传输的超文本传输请求的情况下,根据所述超文本传输请求建立与所述客户端之间的传输控制协议连接;
将所述传输控制协议连接添加至存储池中,所述存储池中包括至少一个传输控制协议连接;
在获取到与所述客户端对应的待推送信息的情况下,利用所述存储池中的所述传输控制协议连接将所述待推送信息推送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述利用所述存储池中的所述传输控制协议连接将所述待推送信息推送至所述客户端,包括:
获取原始推送服务对应的原始头帧和原始信息帧;
确定待推送信息对应的客户端推送路径;并将所述客户端推送路径添加至原始头帧中,得到头帧;
将所述待推送信息添加至所述原始信息帧中,得到信息帧;
根据所述信息帧和所述头帧得到待推送服务;并利用所述传输控制协议连接将所述待推送服务推送至所述客户端。
3.根据权利要求1所述的方法,其特征在于,所述将所述传输控制协议连接添加至存储池中之前,所述方法还包括:
配置所述传输控制协议连接与所述客户端之间的对应关系;
相应的,所述将所述传输控制协议连接添加至存储池中,包括:
将所述传输控制协议连接与所述客户端之间的对应关系和所述传输控制协议连接添加至所述存储池中。
4.根据权利要求1所述的方法,其特征在于,所述将所述传输控制协议连接添加至存储池中之后,所述方法还包括:
在所述传输控制协议连接断开的情况下,从所述存储池中删除所述传输控制协议连接。
5.根据权利要求1所述的方法,其特征在于,所述利用所述存储池中的所述传输控制协议连接将所述待推送信息推送至所述客户端之后,所述方法还包括:
接收所述客户端传输的推送成功的响应信息。
6.一种信息推送方法,其特征在于,所述方法包括:
向服务器发送超文本传输请求;以根据所述超文本传输请求建立与所述服务器之间的传输控制协议连接;
将所述传输控制协议连接添加至连接池中,并根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息。
7.根据权利要求6所述的方法,其特征在于,所述根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息,还包括:
根据所述传输控制协议连接接收所述服务器传输的待推送服务;
相应的,所述根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息,包括:
从所述待推送服务中获取头帧和信息帧;
从所述头帧中获取客户端推送路径;并从所述信息中获取所述待推送信息;
向所述客户端推送路径对应的目标应用传输所述待推送信息。
8.根据权利要求6所述的方法,其特征在于,所述向服务器发送超文本传输请求之后,所述方法还包括:
获取所述超文本传输请求的发送时间;
根据所述发送时间调整下一次向所述服务器发送心跳信息的第一时间;
在所述第一时间到达时,向所述服务器发送所述下一心跳信息。
9.根据权利要求6所述的方法,其特征在于,所述根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息之后,所述方法还包括:
向服务器发送推送成功的响应信息。
10.一种服务器,其特征在于,所述服务器包括:
建立单元,用于在接收到客户端传输的超文本传输请求的情况下,根据所述超文本传输请求建立与所述客户端之间的传输控制协议连接;
第一添加单元,用于将所述传输控制协议连接添加至存储池中,所述存储池中包括至少一个传输控制协议连接;
推送单元,用于在获取到与所述客户端对应的待推送信息的情况下,利用所述存储池中的所述传输控制协议连接将所述待推送信息推送至所述客户端。
11.一种客户端,其特征在于,所述客户端包括:
传输单元,用于向服务器发送超文本传输请求;以根据所述超文本传输请求建立与所述服务器之间的传输控制协议连接;
第二添加单元,用于将所述传输控制协议连接添加至连接池中;
第二接收单元,用于根据所述连接池中的所述传输控制协议连接接收所述服务器传输的待推送信息。
12.一种服务器,其特征在于,所述服务器包括:
第一存储器、第一处理器和第一通信总线,所述第一存储器通过所述第一通信总线与所述第一处理器进行通信,所述第一存储器存储所述第一处理器可执行的信息推送的程序,当所述信息推送的程序被执行时,通过所述第一处理器执行如权利要求1至5任一项所述的方法。
13.一种客户端,其特征在于,所述客户端包括:
第二存储器、第二处理器和第二通信总线,所述第二存储器通过所述第二通信总线与所述第二处理器进行通信,所述第二存储器存储所述第二处理器可执行的信息推送的程序,当所述信息推送的程序被执行时,通过所述第二处理器执行如权利要求6至9任一项所述的方法。
14.一种存储介质,其上存储有计算机程序,应用于服务器和客户端,其特征在于,该计算机程序被第一处理器执行时实现权利要求1至5任一项所述的方法,该计算机程序被第二处理器执行时实现权利要求6至9任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210323009.0A CN114900510A (zh) | 2022-03-29 | 2022-03-29 | 一种信息推送方法及服务器、客户端、存储介质 |
PCT/CN2023/084272 WO2023185796A1 (zh) | 2022-03-29 | 2023-03-28 | 一种信息推送方法及服务器、客户端、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210323009.0A CN114900510A (zh) | 2022-03-29 | 2022-03-29 | 一种信息推送方法及服务器、客户端、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114900510A true CN114900510A (zh) | 2022-08-12 |
Family
ID=82715637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210323009.0A Pending CN114900510A (zh) | 2022-03-29 | 2022-03-29 | 一种信息推送方法及服务器、客户端、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114900510A (zh) |
WO (1) | WO2023185796A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023185796A1 (zh) * | 2022-03-29 | 2023-10-05 | 北京沃东天骏信息技术有限公司 | 一种信息推送方法及服务器、客户端、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020165907A1 (en) * | 2001-04-13 | 2002-11-07 | Matthew Dornquast | System and method for real time interactive network communications |
CN101599982A (zh) * | 2008-06-06 | 2009-12-09 | 广东宇天信通通信科技有限公司 | 手机信息浏览装置、系统及实现方法 |
CN108390950A (zh) * | 2018-05-28 | 2018-08-10 | 中国建设银行股份有限公司 | 一种消息推送方法、装置及设备 |
CN110971703A (zh) * | 2019-12-11 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 基于连接池的服务请求方法、装置、服务器和存储介质 |
CN111092809A (zh) * | 2019-12-30 | 2020-05-01 | 北京每日优鲜电子商务有限公司 | 实时推送信息的方法、装置、计算机设备及存储介质 |
CN112600926A (zh) * | 2020-12-16 | 2021-04-02 | 平安消费金融有限公司 | 一种消息推送方法、装置及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101473660B1 (ko) * | 2013-10-14 | 2014-12-18 | 경북대학교 산학협력단 | 웹 기반 실시간 데이터 푸싱 방법 및 그 시스템 |
CN105450771A (zh) * | 2015-12-16 | 2016-03-30 | 北京浩瀚深度信息技术股份有限公司 | 信息推送和信息推送优化方法、服务器及系统 |
CN106941536A (zh) * | 2017-05-03 | 2017-07-11 | 华东交通大学 | 基于http协议的客户端与服务器之间的数据交互方法 |
CN114900510A (zh) * | 2022-03-29 | 2022-08-12 | 北京沃东天骏信息技术有限公司 | 一种信息推送方法及服务器、客户端、存储介质 |
-
2022
- 2022-03-29 CN CN202210323009.0A patent/CN114900510A/zh active Pending
-
2023
- 2023-03-28 WO PCT/CN2023/084272 patent/WO2023185796A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020165907A1 (en) * | 2001-04-13 | 2002-11-07 | Matthew Dornquast | System and method for real time interactive network communications |
CN101599982A (zh) * | 2008-06-06 | 2009-12-09 | 广东宇天信通通信科技有限公司 | 手机信息浏览装置、系统及实现方法 |
CN108390950A (zh) * | 2018-05-28 | 2018-08-10 | 中国建设银行股份有限公司 | 一种消息推送方法、装置及设备 |
CN110971703A (zh) * | 2019-12-11 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 基于连接池的服务请求方法、装置、服务器和存储介质 |
CN111092809A (zh) * | 2019-12-30 | 2020-05-01 | 北京每日优鲜电子商务有限公司 | 实时推送信息的方法、装置、计算机设备及存储介质 |
CN112600926A (zh) * | 2020-12-16 | 2021-04-02 | 平安消费金融有限公司 | 一种消息推送方法、装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
尼恩: "Java高并发核心编程 卷1:NIO、Netty、Redis、ZooKeeper", 机械工业出版社, pages: 297 - 298 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023185796A1 (zh) * | 2022-03-29 | 2023-10-05 | 北京沃东天骏信息技术有限公司 | 一种信息推送方法及服务器、客户端、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023185796A1 (zh) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108293058B (zh) | 使用安全信令建立通信事件 | |
US11025724B2 (en) | Transport of control data in proxy-based network communications | |
CN104009938B (zh) | 基于路由层面的长连接的方法和系统 | |
US10148565B2 (en) | OPENFLOW communication method and system, controller, and service gateway | |
EP2874376A1 (en) | Method and system for information synchronization between cloud storage gateways, and cloud storage gateway | |
WO2023185796A1 (zh) | 一种信息推送方法及服务器、客户端、存储介质 | |
WO2006001137A1 (ja) | データ通信システム、サーバ装置及びデータ通信方法並びにそのプログラム | |
Karamitsios et al. | Efficient IoT data aggregation for connected health applications | |
US20140310429A1 (en) | Server-side http translator | |
JP2008152462A (ja) | 遠隔起動システム、遠隔起動サーバ及び通信端末 | |
CN112511892B (zh) | 屏幕共享方法、装置、服务器及存储介质 | |
CN111935656B (zh) | Ip数据长连接的方法、装置和计算机设备 | |
CN111666589A (zh) | 区块链分布式的风险数据共享系统及方法 | |
CN112689016B (zh) | 智能设备控制方法、设备和存储介质 | |
KR100803062B1 (ko) | 무선통신환경에서 대용량 메시지 전송시스템 및 방법 | |
KR20070030323A (ko) | 키를 전송하기 위한 방법 및 장치 | |
CN114124891A (zh) | 网络请求的处理方法和装置、存储介质及电子装置 | |
CN111669364A (zh) | 一种数据传输的方法、装置、电子设备及介质 | |
EP3176986A1 (en) | Method, device and system for remote desktop protocol gateway to conduct routing and switching | |
CN113497829B (zh) | 一种基于websocket控制电子班牌的方法 | |
CN115460083B (zh) | 安全加速服务部署方法、装置、介质及设备 | |
EP3435629B1 (en) | Transport of control data in proxy-based network communications | |
US11431492B2 (en) | Mutable encrypted system | |
CN115361442B (zh) | 一种消息推送方法及装置、存储介质及电子设备 | |
WO2016206381A1 (zh) | 文件处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |