CN109547511A - 一种web消息实时推送方法、服务器、客户端及*** - Google Patents
一种web消息实时推送方法、服务器、客户端及*** Download PDFInfo
- Publication number
- CN109547511A CN109547511A CN201710864536.1A CN201710864536A CN109547511A CN 109547511 A CN109547511 A CN 109547511A CN 201710864536 A CN201710864536 A CN 201710864536A CN 109547511 A CN109547511 A CN 109547511A
- Authority
- CN
- China
- Prior art keywords
- connection
- message
- module
- server
- client
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000007726 management method Methods 0.000 claims description 138
- 238000012545 processing Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 2
- 230000005611 electricity Effects 0.000 claims description 2
- 230000003111 delayed effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 4
- 230000006378 damage Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种WEB消息实时推送方法、服务器、客户端及***,所述方法包括:消息推送管理模块从消息队列模块中,获取待向客户端推送的消息,所述消息推送管理模块从连接缓存模块中,获取与所述客户端之间的第一长连接,其中,所述第一长连接是连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的,所述消息推送管理模块将所述消息通过所述第一长连接发送到所述客户端,所述方法中第一长连接是基于服务器推送事件建立的,属于半双工通信,在对海量用户进行WEB消息实时推送的场景中,可以避免资源浪费。
Description
技术领域
本发明实施例涉及移动通信技术领域,尤其涉及一种WEB消息实时推送方法、服务器、客户端及***。
背景技术
随着基于B/S架构的Web应用***越来越广泛和深入地被使用,一些特定的业务场景对Web应用提出了一些新的要求。例如股票交易行情、购票网站、电子任务看板等类型的Web应用,需要服务器(Server)能够将新的消息实时地推送给前端浏览器(Browser)以实现其业务需求,而且这类Web应用所面向的用户数量往往也是非常巨大的,但用户向服务器端需要发送的消息则较少。这是一种需要为海量用户提供WEB消息实时推送服务的应用场景。
然而,在普通的网页中常用的HTTP协议,是严格遵循请求-响应模型的,即前端发送一个请求到服务器,服务器对请求进行响应并将响应信息发送回前端。这是由前端发起的,单向的,一次性的通话。无法简单地满足在上述类型的Web应用中对于服务器实时推送的需求。
下面简单介绍了现有的几种解决方法。第一种方法为轮询方法,图6为现有技术中的轮询方法示意图,如图6所示,轮询方法是通过在前端脚本中设置发起请求的定时任务,每隔一段时间前端就发送一次获取消息的请求实现的。该方案虽然实现简单,后台服务器只需要实现一个不同的响应消息获取请求的接口并且不需要去维护连接。但是当轮询的间隔较长时会导致前端获取到的消息实时性较差具有一定的时延;当轮询的间隔时间较短时会产生许多无效的请求,增加后端服务器的处理压力;每个一段时间就要建立一次连接,效率比较低。
第二种方法为长轮询方法,图7为现有技术中的长轮询方法示意图,如图7所示,长轮询方法的基本实现原理是前端向服务器发送数据获取的请求,服务器接收请求后保持该连接,直到有新的消息才响应该请求,向前端返回新的消息并关闭该连接,前端处理完响应的消息后再向服务器发送新的获取消息的请求。长轮询方案在无消息的情况下不会频繁地产生请求建立连接,这方面耗费的资源较小。但是每次获取消息后仍需要再次请求建立连接,传输噪音较大;服务器需要保持连接,需要消耗资源;服务器返回的消息顺序无法保证;服务器重启后连接会丢失,管理维护的难度较大。
第三种方法为WebSocket,WebSocket是HTML5的新标准,它通过定义一个建立在TCP协议上的套接字(Socket)来支持建立双向的通信信道。首先,WebSocket利用已有的HTTP协议实现服务器端和前端的“握手”认证。该过程实际是在HTTP报头中加入交互的信息,服务器端按照协议的格式相应这种请求后,连接便成功建立。在连接建立成功后,Web-Socket会以定义的数据帧的格式进行全双工的通信。WebSocket支持接收、发送文本和二进制数据。但是,由于WebSocket是基于TCP连接的全双工通信,只用于服务器消息推送会浪费客户端推送部分的信道,特别是在对海量用户进行WEB消息推送的应用场景下,造成较明显的资源浪费。
因此,如何提供一种既适用于海量用户的WEB消息推送场景,又能避免资源浪费的WEB消息实时推送方法,成为亟需解决的一大难题。
发明内容
针对现有技术中存在的问题,本发明实施例提供一种WEB消息实时推送方法、服务器、客户端及***。
第一方面,本发明实施例提供一种WEB消息实时推送方法,所述方法包括:
消息推送管理模块从消息队列模块中,获取待向客户端推送的消息;
所述消息推送管理模块从连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;
所述消息推送管理模块将所述消息通过所述第一长连接发送到所述客户端。
第二方面,本发明实施例提供一种WEB消息实时推送方法,所述方法包括:
客户端的服务器推送事件管理模块向服务器的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件,与所述客户端之间建立第一长连接,并将所述第一长连接保存在所述服务器的连接缓存模块中;
所述服务器推送事件管理模块接收所述服务器的消息推送管理模块通过所述第一长连接发送过来的消息;其中,所述消息是所述消息推送管理模块从所述服务器的消息队列模块中获取到的。
第三方面,本发明实施例提供一种服务器,所述服务器包括:
连接管理模块、消息推送管理模块、消息队列模块和连接缓存模块,所述连接缓存模块分别与所述连接管理模块和所述消息推送管理模块电连接,所述消息队列模块与所述消息推送管理模块电连接;其中,
所述消息推送管理模块用于从所述消息队列模块中,获取待向客户端推送的消息,以及用于从所述连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是所述连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;
所述消息推送管理模块用于将所述消息通过所述第一长连接,发送到所述客户端。
第四方面,本发明实施例提供一种WEB消息实时推送***,所述***包括至少一个客户端设备,以及上述服务器;其中,所述客户端设备中包括服务器推送事件管理模块,用于向服务器的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件,与所述客户端之间建立第一长连接,并将所述第一长连接保存在所述服务器的连接缓存模块中,以及用于接收所述服务器的消息推送管理模块通过所述第一长连接发送过来的消息;其中,所述消息是所述消息推送管理模块从所述服务器的消息队列模块中获取到的。
第五方面,本发明实施例提供一种WEB消息实时推送设备,所述设备包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述WEB消息实时推送方法。
本发明实施例提供的WEB消息实时推送方法、服务器、客户端及***,通过在客户端与服务器之间及建立长连接的方式,实现对海量用户进行WEB消息实施推送,所述长连接是基于HTML5协议的服务器推送事件(Server-sent Events,以下简称SSE)实现的,SSE属于半双工通信,相对于全双工通信,比如WebSocket而言,SSE更加轻量级,维护每个长连接的代价更低,避免了资源浪费,同时,SSE实现方式上更加清晰简化且推送性能上更占优势,在一些版本较旧的浏览器的兼容性更好。此外,在为海量用户提供消息推送服务的***中,SSE还支持连接超时及丢失的监测功能,进一步提高消息推送的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的WEB消息实时推送方法流程图;
图2为本发明另一实施例提供的WEB消息实时推送方法流程图;
图3为本发明实施例提供的服务器的结构示意图;
图4为本发明实施例提供的WEB消息实时推送***的结构示意图;
图5为本发明实施例提供的WEB消息实时推送设备的结构示意图;
图6为现有技术中的轮询方法示意图;
图7为现有技术中的长轮询方法示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的WEB消息实时推送方法流程图,如图1所示,所述方法包括:
步骤10、消息推送管理模块从消息队列模块中,获取待向客户端推送的消息;
步骤11、所述消息推送管理模块从连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;
步骤12、所述消息推送管理模块将所述消息通过所述第一长连接发送到所述客户端。
具体地,当有新的消息到达时,这些消息首先被保存在消息队列模块中,消息队列模块可以按照消息到达时间的先后,对这些消息进行排序,到达时间越早,排序越靠前,对应的序列号越小。
消息推送管理模块可以按照对应序列号从小到大的顺序,对消息队列模块中的消息进行依次获取,然后将获取到的消息推送到客户端。比如,消息推送管理模块从所述消息队列模块中,获取到的是消息A,则所述消息A即为待向客户端推送的消息。所述消息推送管理模块将所述消息A推送到客户端之前,可以先从缓存模块中获取与所述客户端之间的第一长连接。其中,所述第一长连接是由连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的。由于服务器面向的客户端有很多,每个客户端都可以与所述服务器之间建立一个第一长连接,为了便于集中管理,所述连接管理模块建立所述第一长连接之后,将其保存在连接缓存模块中。
若所述消息推送管理模块要将所述消息A推送给客户端B,则可以从所述连接缓存模块中,获取服务器与所述客户端B之间的第一长连接,然后将所述消息A通过该第一长连接发送到客户端B,客户端B的服务器推送事件管理模块接收到所述消息A之后,可以触发新消息事件。
其中,所述服务器推送事件管理模块(以下简称:SSE Manager)主要是基于HTML5规范中的服务器推送事件(Server-sent Events,以下简称:SSE)实现的。首先,客户端可以通过JavaScript脚本检测所述客户端的浏览器是否支持SSE,若支持SSE,则所述SSEManager发起HTTP请求与服务器建立第一长连接,同时创建一个用于触发SSE监听的EventSource对象。所述JavaScript脚本可以对所述Event Source对象进行事件监听,触发数据消息或连接状态的更新,其中,所述Event Source对象包括三种默认的事件open、message、error以及自定义事件,如表一所示:
表一
名称 | 说明 | 事件处理方法 |
open | 当成功与服务器建立连接时产生 | on open |
message | 当收到服务器发送的事件时产生 | on massage |
closing | 当服务器提示连接即将关闭时产生 | on closing |
error | 当出现错误时产生 | on error |
本发明实施例提供的WEB消息实时推送方法,客户端与服务器之间的第一长连接是基于服务器推送事件建立的,所述服务器推送事件属于半双工通信,相对于现有的全双工通信而言,基于服务器推送事件建立的第一长连接更加轻量级,实现代价相对较小,避免了资源浪费,服务器推送事件实现方式上更加清晰简化且推送性能上更占优势,在一些版本较旧的浏览器的兼容性更好;通过连接缓存模块对第一长连接进行集中管理,通过消息队列模块将待向客户端推送的消息进行集中管理,在物理上分离了长连接处理与消息推送两个业务过程,提高了服务器的推送性能。
可选的,在上述实施例的基础上,所述连接管理模块包括:
HTTP处理子模块、定时任务子模块、第一连接服务管理子模块和第一连接数据存储子模块,所述HTTP处理子模块和所述定时任务子模块分别与所述第一连接服务管理子模块电连接,所述第一连接服务管理子模块和所述第一连接数据存储子模块电连接,所述第一连接数据存储子模块与所述连接缓存模块电连接;其中,
所述HTTP处理子模块根据所述第一服务器推送事件与所述客户端之间建立所述第一长连接,并将所述第一长连接通过所述第一连接服务管理子模块提供的第一接口,保存至所述连接缓存模块中;
所述定时任务子模块通过所述第一连接服务管理子模块提供的第二接口,每隔第一预设时间段将所述连接缓存模块中的保存时间超过第一预设时间阈值的所述第一长连接销毁;
所述第一连接数据存储子模块对所述连接缓存模块进行读写操作。
具体地,上述实施例中提及的连接管理模块包括:HTTP处理子模块、定时任务子模块、第一连接服务管理子模块和第一连接数据存储子模块。上述四个子模块之间的连接关系为:所述HTTP处理子模块和所述定时任务子模块分别与所述第一连接服务管理子模块电连接,所述第一连接服务管理子模块和所述第一连接数据存储子模块电连接,所述第一连接数据存储子模块与所述连接缓存模块电连接。
其中,HTTP处理子模块可以根据客户端的服务器推送事件管理模块发送的第一服务器推送事件,与所述客户端之间建立第一长连接,然后通过所述第一连接服务管理子模块提供的第一接口,将所述长连接保存到连接缓存模块中。由于服务器面对的客户端有很多,HTTP处理子模块可以根据每个客户端发送的第一服务器推送事件,与该客户端之间建立一个第一长连接,为了便于集中化管理,可以将与每个客户端之间的第一长连接集中保存在连接缓存模块中。
定时任务子模块可以通过所述第一连服务管理子模块提供的第二接口,访问所述连接缓存模块中的第一长连接,并每隔第一预设时间段将保存时间超过第一预设时间阈值的第一长连接按照预设的规则进行销毁。比如,可以将所述第一预设时间段设定为2分钟,将所述第一预设时间阈值设定为5分钟,则定时任务模块每隔两分钟通过所述第二接口访问一次连接缓存模块中的第一长连接,如果检测到某个第一长连接的保存时间超过了5分钟,则定时任务模块可以按照预设的规则,将该第一长连接进行销毁。
第一连接服务管理子模块为所述HTTP处理子模块提供所述第一接口,为所述定时任务子模块提供所述第二接口。在所述HTTP处理子模块通过所述第一接口将所述第一连接保存至所述连接缓存模块的过程中,以及在所述定时任务子模块通过所述第二接口访问所述连接缓存模块中的第一长连接,并将保存时间超过所述第一预设时间阈值的第一长连接进行销毁的过程中,对所述连接缓存模块直接进行读写操作的是第一连接数据存储子模块。
本发明实施例提供的WEB消息实时推送方法,通过HTTP处理子模块将服务器与客户端之间的第一长连接保存至连接缓存模块中,通过定时任务子模块对所述第一长连接进行定时检测和销毁,使得所述WEB消息实时推送方法更加科学。
可选的,在上述实施例的基础上,所述消息推送管理模块包括:
消息发送子模块、线程池子模块、调度器子模块、第二连接服务管理子模块和第二连接数据存储子模块,所述调度器子模块分别与所述消息队列模块和所述线程池子模块电连接,所述线程池子模块分别与所述第二连接服务管理子模块和所述消息发送子模块电连接,所述第二连接数据存储子模块分别与所述第二连接服务管理子模块和所述连接缓存模块电连接;其中,
所述调度器子模块从所述消息队列模块中,获取待向所述客户端推送的消息,并对所述线程池子模块进行管理;
所述线程池子模块通过所述第二连接服务管理子模块提供的第三接口,从所述连接缓存模块中获取所述第一长连接,通过所述消息发送子模块提供的第四接口,将所述消息通过所述第一长连接发送到所述客户端;
所述第二连接数据存储子模块对所述连接缓存模块进行读写操作。
具体地,上述实施例中提及的消息推送管理模块包括消息发送子模块、线程池子模块、调度器子模块、第二连接服务管理子模块和第二连接数据存储子模块。上述五个子模块之间的连接关系为:调度器子模块分别与消息队列模块和线程池子模块电连接,线程池子模块分别与第二连接服务管理子模块和消息发送子模块电连接,第二连接数据存储子模块分别与第二连接服务管理子模块和所述连接缓存模块电连接。
其中,调度器子模块主要负责接收消息队列模块中的新消息通知,从消息队列模块中获取待向客户端推送的消息,并对线程池子模块进行管理,比如,可以管理线程池子模块中的线程的创建、调用以及销毁等。线程池子模块可以通过线程调用所述第二连接服务管理子模块提供的第三接口,从连接缓存模块中获取服务器与待推送消息的客户端之间的第一长连接,并通过调用所述消息发送子模块提供的第四接口,将待推送的消息通过所述长连接发送到客户端。
线程池子模块通过调用所述第三接口,从连接缓存模块中获取第一长连接的过程中,对所述连接缓存模块直接进行读写操作的是第二连接数据存储子模块。
本发明实施例提供的WEB消息实时推送方法,通过调度器子模块从消息队列模块中获取待向客户端推送的消息,通过线程池子模块调用第二连接服务管理子模块提供的第三接口,从连接缓存模块中获取第一长连接,并将所述消息通过所述第一长连接发送到所述客户端,使得所述WEB消息实时推送方法更加科学。
可选的,在上述实施例的基础上,所述对所述线程池子模块进行管理,包括:
若所述线程池子模块中的当前线程数小于核心线程数,则创建第一线程,并通过所述第一线程执行任务;其中,所述任务包括从所述消息队列模块中获取待向所述客户端推送的消息,并将所述消息通过所述第一长连接发送到所述客户端;
若所述当前线程数大于或等于所述核心线程数,则判断所述当前线程中,是否存在空闲线程;
若存在空闲线程,则通过所述空闲线程执行所述任务;若不存在空闲线程且所述当前线程数小于最大线程数,则创建第二线程,并通过所述第二线程执行所述任务。
具体地,调度器子模块可以对线程池子模块进行管理,比如,可以管理线程池子模块中线程的创建、调用以及销毁。
调度器子模块收到新的消息通知时,可以调用线程池子模块中的线程执行如下任务:从消息队列中获取待向客户端推送的消息,从连接缓存模块中获取服务器与所述客户端之间的第一长连接,将所述消息通过所述第一长连接发送到所述客户端。
线程池子模块有三个主要的配置参数:核心线程数、最大线程数和空闲等待时长。当线程池子模块收到新的任务通知时,首先判断当前线程数与核心线程数之间的大小关系。其中,核心线程数是预先设定的一个数值,比如可以设为5,若线程池子模块收到任务时的当前线程数为2,此时,当前线程数小于核心线程数,则线程池子模块可以创建一个第一线程,并调用该第一线程执行所述任务。
若线程池子模块收到任务时的当前线程数为5,则当前线程数等于核心线程数,则判断所述线程池子模块中的当前线程中,是否存在空闲线程,若存在空闲线程,则调用该空闲线程执行所述任务;若当前线程中没有空闲线程,则判断当前线程数与最大线程数之间的大小关系,若当前线程数小于最大线程数,则创建一个第二线程,并调用该第二线程执行所述任务。比如,若当前线程数为8,最大线程数为10,且当前线程中不存在空闲线程,则创建一个第二线程,并调用该第二线程执行任务。
每条线程执行完任务之后,可以查询所述消息队列模块中是否有新的任务需要执行,如果不存在新的任务,则该线程进入空闲等待状态。
如果线程池子模块中的当前线程数大于核心线程数,且当前线程中的某个线程处于空闲等待状态的时间超过了预设的空闲等待时长,则线程池子模块可以将该线程销毁。
本发明实施例提供的本发明实施例提供的WEB消息实时推送方法,通过对线程池模块中的线程的创建、调用以及销毁过程进行管理,提供了一种线程多路复用技术执行消息推送任务的机制,提升了相同代价下服务器的推送性能。
可选的,在上述实施例的基础上,所述每隔第一预设时间段将所述连接缓存模块中的保存时间超过第一预设时间阈值的所述第一长连接销毁,包括:
若所述定时任务子模块检测到所述第一长连接的保存时间超过所述第一预设时间阈值,则所述HTTP处理子模块向所述客户端发送第一心跳推送;其中,所述第一心跳推送的消息内容为所述第一长连接即将关闭;
若所述HTTP处理子模块接收到所述客户端发送的第二服务器推送事件,则根据所述第二服务器推送事件与所述客户端之间建立第二长连接,并将所述第二长连接保存至所述连接缓存模块中;
所述定时任务子模块将所述第一长连接销毁。
具体地,定时任务模块每隔第一预设时间段,比如2分钟,通过第一连服务管理子模块提供的第二接口,访问连接缓存模块中的第一长连接。定时任务模块在所述访问过程中,可以检测第一长连接的保存时间,如果存在一个第一长连接A的保存时间超过了第一预设时间阈值,比如5分钟,则对所述第一长连接A进行标记;然后,HTTP处理子模块通过所述第一长连接A向对应的客户端发送第一心跳推送;其中,所述第一心跳推送的消息内容为所述第一长连接A即将关闭;所述客户端接收到所述第心跳之后,通过所述第一长连接A向所述HTTP处理子模块发送第二服务器推送事件,所述HTTP处理子模块接收到所述第二服务器推送事件后,与所述客户端之间建立第二长连接,并将所述第二长连接保存至连接缓存模块中;所述定时任务子模块在下一次访问所述连接缓存模块时,将被标记的所述第一长连接A进行销毁。
本发明实施例提供的WEB消息实时推送方法,通过定时任务子模块对保存时间超过第一预设时间阈值的第一长连接进行销毁,并通过HTTP处理子模块与所述客户端之间建立第二长连接,可以避免出现连接超时的问题。
可选的,在上述实施例的基础上,所述方法还包括:
所述HTTP处理子模块建立所述第一长连接之后,每隔第二预设时间段向所述客户端发送第二心跳推送;其中,所述第二心跳推送的消息内容为空;
若所述HTTP处理子模块接收到所述客户端发送过来的第三服务器推送事件,则与所述客户端之间建立第三长连接,并将所述第三长连接保存至所述连接缓存模块中;其中,所述第三服务器推送事件是当所述客户端每隔第三预设时间段没有接收到所述第二心跳推送时,发送过来的。
具体地,HTTP处理子模块根据客户端发送的第一服务器推送事件,与所述客户端之间建立第一长连接之后,每隔第二预设时间段,比如1秒,向所述客户端发送第二心跳推送,所述第二心跳推送的消息内容为空;若所述客户端接收到所述第二心跳推送,则表示所述第一长连接处于保持状态,如果所述客户端每隔第三预设时间段,比如2秒,没有接收到所述第二心跳推送,则说明所述第一长连接可能已经丢失,则所述客户端可以向所述HTTP子模块发送第三服务器推送事件,所述HTTP子模块接收到所述第三服务器推送事件时,与所述客户端之间重新建立一个第三长连接,并将所述第三长连接保存至连接缓存模块中。
本发明实施例提供的WEB消息实时推送方法,通过HTTP处理子模块在建立与客户端之间的第一长连接之后,每隔预设时间段向所述客户端发送消息内容为空的第二心跳推送,检测所述第一长连接是否处于保持状态,若所述第一长连接已经丢失,则根据所述客户端发送的第三服务器推送事件与所述客户端之间建立新的第三长连接,并将所述第三长连接保存在连接缓存模块中,通过该方法,可以避免出现连接丢失的问题。
图2为本发明另一实施例提供的WEB消息实时推送方法流程图,如图2所示,所述方法包括:
步骤20、客户端的服务器推送事件管理模块向服务器的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件,与所述客户端之间建立第一长连接,并将所述第一长连接保存在所述服务器的连接缓存模块中;
步骤21、所述服务器推送事件管理模块接收所述服务器的消息推送管理模块通过所述第一长连接发送过来的消息;其中,所述消息是所述消息推送管理模块从所述服务器的消息队列模块中获取到的。
具体地,为了实现服务器向客户端实时推送WEB消息,首先需要在客户端与服务器之间建立第一长连接。所述第一长连接的建立方法为:所述客户端的服务器推送事件管理模块向服务器的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件与所述客户端之间建立第一长连接,由于所述服务器面向的客户端有很多,每个客户端与所述服务器之间都可以建立一个第一长连接,为了便于集中管理,所述连接管理模块建立所述第一长连接之后,将其保存在服务器的连接缓存模块中。
当服务器的消息推送管理模块通过所述第一长连接发送待推送的消息时,所述服务器推送事件管理模块接收所述消息,触发新消息事件。其中,所述消息是消息推送管理模块从所述消息队列模块中获取到的,所述第一长连接是所述消息推送管理模块从连接缓存模块中获取到的。
本发明实施例提供的WEB消息实时推送方法,客户端与服务器之间建立的第一长连接是基于服务器推送事件建立的,所述服务器推送事件属于半双工通信,相对于现有全双工通信而言,基于服务器推送事件建立的第一长连接更加轻量级,实现代价相对较小,避免了资源浪费,服务器推送事件实现方式上更加清晰简化且推送性能上更占优势,在一些版本较旧的浏览器的兼容性更好;通过连接缓存模块对第一长连接进行集中管理,通过消息队列模块将待向客户端推送的消息进行集中管理,在物理上分离了长连接处理与消息推送两个业务过程,提高了服务器的推送性能。
图3为本发明实施例提供的服务器的结构示意图,如图3所示,所述服务器包括:连接管理模块30、连接缓存模块31、消息推送管理模块32和消息队列模块33,其中:
所述连接缓存模块31分别与所述连接管理模块30和所述消息推送管理模块32电连接,所述消息队列模块33与所述消息推送管理模块32电连接;所述消息推送管理模块32用于从所述消息队列模块33中,获取待向客户端推送的消息,以及用于从所述连接缓存模块31中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是所述连接管理模块30根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;所述消息推送管理模块32用于将所述消息通过所述第一长连接,发送到所述客户端。
具体地,当有新的消息到达时,这些消息首先被保存在消息队列模块33中,消息队列模块33可以按照消息到达时间的先后,对消息进行排序,到达时间越早,排序越靠前,对应的序列号越小。消息推送管理模块32可以按照对应序列号从小到大的顺序,对消息队列模块33中的消息进行依次获取,然后将获取到的消息推送到客户端。比如,消息推送管理模块32从所述消息队列模块33中获取到的是消息A,则所述消息A即为待向客户端推送的消息。
所述消息推送管理模块32将所述消息A推送到客户端之前,可以先从缓存模块31中获取与所述客户端之间的第一长连接。其中,所述第一长连接是由连接管理模块30根据客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的。由于服务器面向的客户端有很多,每个客户端都可以与所述服务器之间建立一个第一长连接,为了便于集中管理,所述连接管理模块30建立所述第一长连接之后,将其保存在连接缓存模块31中。
若消息推送管理模块32要将所述消息A推送给客户端B,则可以先从连接缓存模块31中获取服务器与所述客户端B之间的第一长连接,然后将所述消息A通过该第一长连接发送到客户端B,客户端B的服务器推送事件管理模块接收到所述消息A之后,可以触发新消息事件。
本发明实施例提供的服务器,其功能具体参照上述方法实施例,此处不再赘述。
本发明实施例提供的服务器与客户端之间建立的第一长连接是基于服务器推送事件建立的,所述服务器推送事件属于半双工通信,相对于现有全双工通信,基于服务器推送事件建立的第一长连接实现代价相对较小,避免了资源浪费,服务器推送事件实现方式上更加清晰简化且推送性能上更占优势,在一些版本较旧的浏览器的兼容性更好;通过连接缓存模块对第一长连接进行集中管理,通过消息队列模块将待向客户端推送的消息进行集中管理,在物理上分离了长连接处理与消息推送两个业务过程,提高了消息推送性能。
图4为本发明实施例提供的WEB消息实时推送***的结构示意图,如图4所示,所述***包括:至少一个客户端设备40以及服务器41,其中:
所述客户端设备40包括服务器推送事件管理模块,用于向服务器41的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件,与所述客户端之间建立第一长连接,并将所述第一长连接保存在所述服务器41的连接缓存模块中,以及用于接收所述服务器41的消息推送管理模块通过所述第一长连接发送过来的消息;其中,所述消息是所述消息推送管理模块从所述服务器41的消息队列模块中获取到的。
具体地,本发明实施例提供的WEB消息实时推送***包括至少一个客户端设备40以及服务器41。其中,所述服务器41已在上述实施例中详细描述,此处不再赘述。
客户端设备40包括服务器推送事件管理模块,所述服务器推送事件管理模块可以向服务器41的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件与所述客户端之间建立第一长连接,由于所述服务器41面向的客户端设备40有很多,每个客户端设备40与所述服务器41之间都可以建立一个第一长连接,为了便于集中管理,所述连接管理模块建立所述第一长连接之后,可以将其保存在服务器41的连接缓存模块中。
当服务器41的消息推送管理模块通过所述第一长连接发送待推送的消息时,所述客户端设备40的服务器推送事件管理模块接收所述消息,触发新消息事件。其中,所述消息是所述消息推送管理模块从消息队列模块中获取到的,所述第一长连接是所述消息推送管理模块从连接缓存模块中获取到的。
本发明实施例提供的WEB消息实时推送***,客户端与服务器之间建立的第一长连接是基于服务器推送事件建立的,所述服务器推送事件属于半双工通信,相对于现有全双工通信而言,基于服务器推送事件建立的第一长连接实现代价相对较小,避免了资源浪费,服务器推送事件实现方式上更加清晰简化且推送性能上更占优势,在一些版本较旧的浏览器的兼容性更好;通过连接缓存模块对第一长连接进行集中管理,通过消息队列模块将待向客户端推送的消息进行集中管理,在物理上分离了长连接处理与消息推送两个业务过程,提高了服务器的推送性能。
图5为本发明实施例提供的WEB消息实时推送设备的结构示意图,如图5所示,所述设备包括:处理器(processor)51、存储器(memory)52和总线53,其中:
所述处理器51和所述存储器52通过所述总线53完成相互间的通信;所述处理器51用于调用所述存储器52中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:消息推送管理模块从消息队列模块中,获取待向客户端推送的消息;所述消息推送管理模块从连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;所述消息推送管理模块将所述消息通过所述第一长连接发送到所述客户端。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:消息推送管理模块从消息队列模块中,获取待向客户端推送的消息;所述消息推送管理模块从连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;所述消息推送管理模块将所述消息通过所述第一长连接发送到所述客户端。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:消息推送管理模块从消息队列模块中,获取待向客户端推送的消息;所述消息推送管理模块从连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;所述消息推送管理模块将所述消息通过所述第一长连接发送到所述客户端。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的WEB消息实时推送设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。
Claims (10)
1.一种WEB消息实时推送方法,其特征在于,包括:
消息推送管理模块从消息队列模块中,获取待向客户端推送的消息;
所述消息推送管理模块从连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;
所述消息推送管理模块将所述消息通过所述第一长连接发送到所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述连接管理模块包括:
HTTP处理子模块、定时任务子模块、第一连接服务管理子模块和第一连接数据存储子模块,所述HTTP处理子模块和所述定时任务子模块分别与所述第一连接服务管理子模块电连接,所述第一连接服务管理子模块和所述第一连接数据存储子模块电连接,所述第一连接数据存储子模块与所述连接缓存模块电连接;其中,
所述HTTP处理子模块根据所述第一服务器推送事件与所述客户端之间建立所述第一长连接,并将所述第一长连接通过所述第一连接服务管理子模块提供的第一接口,保存至所述连接缓存模块中;
所述定时任务子模块通过所述第一连接服务管理子模块提供的第二接口,每隔第一预设时间段将所述连接缓存模块中的保存时间超过第一预设时间阈值的所述第一长连接销毁;
所述第一连接数据存储子模块对所述连接缓存模块进行读写操作。
3.根据权利要求1所述的方法,其特征在于,所述消息推送管理模块包括:
消息发送子模块、线程池子模块、调度器子模块、第二连接服务管理子模块和第二连接数据存储子模块,所述调度器子模块分别与所述消息队列模块和所述线程池子模块电连接;所述线程池子模块分别与所述第二连接服务管理子模块和所述消息发送子模块电连接,所述第二连接数据存储子模块分别与所述第二连接服务管理子模块和所述连接缓存模块电连接;其中,
所述调度器子模块从所述消息队列模块中,获取待向所述客户端推送的消息,并对所述线程池子模块进行管理;
所述线程池子模块通过所述第二连接服务管理子模块提供的第三接口,从所述连接缓存模块中获取所述第一长连接,通过所述消息发送子模块提供的第四接口,将所述消息通过所述第一长连接发送到所述客户端;
所述第二连接数据存储子模块对所述连接缓存模块进行读写操作。
4.根据权利要求3所述的方法,其特征在于,所述对所述线程池子模块进行管理,包括:
若所述线程池子模块中的当前线程数小于核心线程数,则创建第一线程,并通过所述第一线程执行任务;其中,所述任务包括从所述消息队列模块中获取待向所述客户端推送的消息,并将所述消息通过所述第一长连接发送到所述客户端;
若所述当前线程数大于或等于所述核心线程数,则判断所述当前线程中,是否存在空闲线程;
若存在空闲线程,则通过所述空闲线程执行所述任务;若不存在空闲线程且所述当前线程数小于最大线程数,则创建第二线程,并通过所述第二线程执行所述任务。
5.根据权利要求2所述的方法,其特征在于,所述每隔第一预设时间段将所述连接缓存模块中的保存时间超过第一预设时间阈值的所述第一长连接销毁,包括:
若所述定时任务子模块检测到所述第一长连接的保存时间超过所述第一预设时间阈值,则所述HTTP处理子模块向所述客户端发送第一心跳推送;其中,所述第一心跳推送的消息内容为所述第一长连接即将关闭;
若所述HTTP处理子模块接收到所述客户端发送的第二服务器推送事件,则根据所述第二服务器推送事件与所述客户端之间建立第二长连接,并将所述第二长连接保存至所述连接缓存模块中;
所述定时任务子模块将所述第一长连接销毁。
6.根据权利要求2所述的方法,其特征在于,还包括:
所述HTTP处理子模块建立所述第一长连接之后,每隔第二预设时间段向所述客户端发送第二心跳推送;其中,所述第二心跳推送的消息内容为空;
若所述HTTP处理子模块接收到所述客户端发送过来的第三服务器推送事件,则与所述客户端之间建立第三长连接,并将所述第三长连接保存至所述连接缓存模块中;其中,所述第三服务器推送事件是当所述客户端每隔第三预设时间段没有接收到所述第二心跳推送时,发送过来的。
7.一种WEB消息实时推送方法,其特征在于,包括:
客户端的服务器推送事件管理模块向服务器的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件,与所述客户端之间建立第一长连接,并将所述第一长连接保存在所述服务器的连接缓存模块中;
所述服务器推送事件管理模块接收所述服务器的消息推送管理模块通过所述第一长连接发送过来的消息;其中,所述消息是所述消息推送管理模块从所述服务器的消息队列模块中获取到的。
8.一种服务器,其特征在于,包括:
连接管理模块、消息推送管理模块、消息队列模块和连接缓存模块,所述连接缓存模块分别与所述连接管理模块和所述消息推送管理模块电连接,所述消息队列模块与所述消息推送管理模块电连接;其中,
所述消息推送管理模块用于从所述消息队列模块中,获取待向客户端推送的消息,以及用于从所述连接缓存模块中,获取与所述客户端之间的第一长连接;其中,所述第一长连接是所述连接管理模块根据所述客户端的服务器推送事件管理模块发送的第一服务器推送事件建立的;
所述消息推送管理模块用于将所述消息通过所述第一长连接,发送到所述客户端。
9.一种WEB消息实时推送***,所述***包括至少一个客户端设备,以及如权利要求8所述的服务器;其中,所述客户端设备中包括服务器推送事件管理模块,用于向服务器的连接管理模块发送第一服务器推送事件,以供所述连接管理模块根据所述第一服务器推送事件,与所述客户端之间建立第一长连接,并将所述第一长连接保存在所述服务器的连接缓存模块中,以及用于接收所述服务器的消息推送管理模块通过所述第一长连接发送过来的消息;其中,所述消息是所述消息推送管理模块从所述服务器的消息队列模块中获取到的。
10.一种WEB消息实时推送设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710864536.1A CN109547511B (zh) | 2017-09-22 | 2017-09-22 | 一种web消息实时推送方法、服务器、客户端及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710864536.1A CN109547511B (zh) | 2017-09-22 | 2017-09-22 | 一种web消息实时推送方法、服务器、客户端及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109547511A true CN109547511A (zh) | 2019-03-29 |
CN109547511B CN109547511B (zh) | 2022-02-22 |
Family
ID=65828491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710864536.1A Active CN109547511B (zh) | 2017-09-22 | 2017-09-22 | 一种web消息实时推送方法、服务器、客户端及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109547511B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN110730206A (zh) * | 2019-09-06 | 2020-01-24 | 浪潮金融信息技术有限公司 | 一种应用于新零售平台数据展示的数据服务方案 |
CN111327483A (zh) * | 2020-03-25 | 2020-06-23 | 新华三信息安全技术有限公司 | 一种设备纳管方法、***及存储介质 |
CN111711689A (zh) * | 2020-06-16 | 2020-09-25 | 深圳市思迪信息技术股份有限公司 | 投顾***图文直播方法及***、设备及存储介质 |
CN113110913A (zh) * | 2020-01-13 | 2021-07-13 | ***通信集团浙江有限公司 | 镜像管理***、方法及计算设备 |
CN113132487A (zh) * | 2021-04-21 | 2021-07-16 | 深圳市乐唯科技开发有限公司 | 一种精简的分布式长连接的数据传输方法及*** |
CN113905005A (zh) * | 2021-09-30 | 2022-01-07 | 完美世界(北京)软件科技发展有限公司 | 即时通讯的客户端状态更新方法和装置 |
CN114172945A (zh) * | 2021-11-26 | 2022-03-11 | 武汉烽火技术服务有限公司 | 一种模拟实现全双工即时通信方法与设备 |
CN114760297A (zh) * | 2022-03-16 | 2022-07-15 | 广联达科技股份有限公司 | 一种消息推送方法、***、设备及可读存储介质 |
CN115022329A (zh) * | 2022-07-08 | 2022-09-06 | 国泰君安证券股份有限公司 | 基于sse实现投顾实时图文直播的***、方法、装置、处理器及其计算机可读存储介质 |
CN115134404A (zh) * | 2021-03-22 | 2022-09-30 | 花瓣云科技有限公司 | 管理推送连接的方法和电子设备 |
CN116827893A (zh) * | 2023-08-29 | 2023-09-29 | 四川中电启明星信息技术有限公司 | 一种面向多级组织的实时消息推送方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523177A (zh) * | 2011-12-19 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种消息推送服务的实现方法与*** |
CN103001860A (zh) * | 2012-12-20 | 2013-03-27 | 北京思特奇信息技术股份有限公司 | 一种融合通信Web即时消息实现*** |
CN103095819A (zh) * | 2013-01-04 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 推送数据信息的方法及数据信息推送*** |
US20140258409A1 (en) * | 2013-01-30 | 2014-09-11 | Tencent Technology (Shenzhen) Company Limited | Method, server and browser for pushing message actively |
CN104333577A (zh) * | 2014-10-23 | 2015-02-04 | 张勇平 | 一种基于http的消息推送***及方法 |
CN105681385A (zh) * | 2015-05-22 | 2016-06-15 | 深圳Tcl数字技术有限公司 | 信息推送方法及装置 |
CN106301969A (zh) * | 2016-10-25 | 2017-01-04 | 广东亿迅科技有限公司 | Http长链接的管理方法及*** |
US20170134256A1 (en) * | 2015-09-08 | 2017-05-11 | Shenzhen Skyworth-Rgb Electronic Co., Ltd. | Long connection sharing method for multi-businesses, system and device, terminal |
CN106686091A (zh) * | 2016-12-30 | 2017-05-17 | 广州尚融网络科技有限公司 | 一种虚拟通道控制方法及*** |
CN107181821A (zh) * | 2017-07-05 | 2017-09-19 | 广州华多网络科技有限公司 | 一种基于sse规范的消息推送方法及装置 |
-
2017
- 2017-09-22 CN CN201710864536.1A patent/CN109547511B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523177A (zh) * | 2011-12-19 | 2012-06-27 | 北京新媒传信科技有限公司 | 一种消息推送服务的实现方法与*** |
CN103001860A (zh) * | 2012-12-20 | 2013-03-27 | 北京思特奇信息技术股份有限公司 | 一种融合通信Web即时消息实现*** |
CN103095819A (zh) * | 2013-01-04 | 2013-05-08 | 微梦创科网络科技(中国)有限公司 | 推送数据信息的方法及数据信息推送*** |
US20140258409A1 (en) * | 2013-01-30 | 2014-09-11 | Tencent Technology (Shenzhen) Company Limited | Method, server and browser for pushing message actively |
CN104333577A (zh) * | 2014-10-23 | 2015-02-04 | 张勇平 | 一种基于http的消息推送***及方法 |
CN105681385A (zh) * | 2015-05-22 | 2016-06-15 | 深圳Tcl数字技术有限公司 | 信息推送方法及装置 |
US20170134256A1 (en) * | 2015-09-08 | 2017-05-11 | Shenzhen Skyworth-Rgb Electronic Co., Ltd. | Long connection sharing method for multi-businesses, system and device, terminal |
CN106301969A (zh) * | 2016-10-25 | 2017-01-04 | 广东亿迅科技有限公司 | Http长链接的管理方法及*** |
CN106686091A (zh) * | 2016-12-30 | 2017-05-17 | 广州尚融网络科技有限公司 | 一种虚拟通道控制方法及*** |
CN107181821A (zh) * | 2017-07-05 | 2017-09-19 | 广州华多网络科技有限公司 | 一种基于sse规范的消息推送方法及装置 |
Non-Patent Citations (2)
Title |
---|
王伯槐等: "基于Go语言的消息推送平台的设计与实现", 《数码设计》 * |
高鹰: "浅谈基于HTTP的长连接原理及应用", 《信息与电脑(理论版)》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
CN110730206A (zh) * | 2019-09-06 | 2020-01-24 | 浪潮金融信息技术有限公司 | 一种应用于新零售平台数据展示的数据服务方案 |
CN113110913A (zh) * | 2020-01-13 | 2021-07-13 | ***通信集团浙江有限公司 | 镜像管理***、方法及计算设备 |
CN113110913B (zh) * | 2020-01-13 | 2024-01-05 | ***通信集团浙江有限公司 | 镜像管理***、方法及计算设备 |
CN111327483B (zh) * | 2020-03-25 | 2022-07-12 | 新华三信息安全技术有限公司 | 一种设备纳管方法、***及存储介质 |
CN111327483A (zh) * | 2020-03-25 | 2020-06-23 | 新华三信息安全技术有限公司 | 一种设备纳管方法、***及存储介质 |
CN111711689A (zh) * | 2020-06-16 | 2020-09-25 | 深圳市思迪信息技术股份有限公司 | 投顾***图文直播方法及***、设备及存储介质 |
CN115134404A (zh) * | 2021-03-22 | 2022-09-30 | 花瓣云科技有限公司 | 管理推送连接的方法和电子设备 |
CN115134404B (zh) * | 2021-03-22 | 2024-01-30 | 花瓣云科技有限公司 | 管理推送连接的方法和电子设备 |
CN113132487A (zh) * | 2021-04-21 | 2021-07-16 | 深圳市乐唯科技开发有限公司 | 一种精简的分布式长连接的数据传输方法及*** |
CN113905005B (zh) * | 2021-09-30 | 2023-05-23 | 完美世界(北京)软件科技发展有限公司 | 即时通讯的客户端状态更新方法和装置 |
CN113905005A (zh) * | 2021-09-30 | 2022-01-07 | 完美世界(北京)软件科技发展有限公司 | 即时通讯的客户端状态更新方法和装置 |
CN114172945A (zh) * | 2021-11-26 | 2022-03-11 | 武汉烽火技术服务有限公司 | 一种模拟实现全双工即时通信方法与设备 |
CN114172945B (zh) * | 2021-11-26 | 2023-05-26 | 武汉烽火技术服务有限公司 | 一种模拟实现全双工即时通信方法与设备 |
CN114760297A (zh) * | 2022-03-16 | 2022-07-15 | 广联达科技股份有限公司 | 一种消息推送方法、***、设备及可读存储介质 |
CN115022329A (zh) * | 2022-07-08 | 2022-09-06 | 国泰君安证券股份有限公司 | 基于sse实现投顾实时图文直播的***、方法、装置、处理器及其计算机可读存储介质 |
CN115022329B (zh) * | 2022-07-08 | 2023-08-04 | 国泰君安证券股份有限公司 | 基于sse实现投顾实时图文直播的***、方法、装置、处理器及其计算机可读存储介质 |
CN116827893A (zh) * | 2023-08-29 | 2023-09-29 | 四川中电启明星信息技术有限公司 | 一种面向多级组织的实时消息推送方法 |
CN116827893B (zh) * | 2023-08-29 | 2023-11-10 | 四川中电启明星信息技术有限公司 | 一种面向多级组织的实时消息推送方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109547511B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547511A (zh) | 一种web消息实时推送方法、服务器、客户端及*** | |
CN109684358B (zh) | 数据查询的方法和装置 | |
Khazaei et al. | Analysis of a pool management scheme for cloud computing centers | |
US9680993B2 (en) | Managing interactive communications campaigns with reduced customer-to-agent connection latency | |
CN110300050A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
US20120288082A1 (en) | Managing interactive communications campaigns with call recording and security | |
CN106131138B (zh) | 一种基于非阻塞队列的展示数据实时推送***和方法 | |
CN106453288A (zh) | 一种支持异步模式的分布式微服务框架***及其实现方法 | |
CN105681454B (zh) | 一种自适应连接云桌面方法及*** | |
US8280031B2 (en) | Method and system for managing interactive communications campaign using a hold queue | |
CN102325148B (zh) | 一种WebService服务调用方法 | |
CN106603598A (zh) | 处理业务请求的方法及装置 | |
US10848579B2 (en) | Systems, apparatuses, and methods for intelligent network communication and engagement | |
CN108055311B (zh) | Http异步请求方法、装置、服务器、终端和存储介质 | |
US11115533B2 (en) | Unified cross channel communications | |
US20130054735A1 (en) | Wake-up server | |
CN113364671A (zh) | 节省流量电量的跨平台办公实时通讯*** | |
CN117615043B (zh) | 一种边缘网关上服务间通信方法及*** | |
CN111131499A (zh) | 并发和异步任务处理方法及其设备 | |
CN102571867A (zh) | 一种bs架构门户应用中保持活跃会话的方法 | |
CN109547333A (zh) | 即时通信方法及装置 | |
US9876860B2 (en) | Variable capture between applications | |
CN110290139A (zh) | 消息传输方法及装置 | |
CN110365749A (zh) | 消息推送方法、消息推送***和一种存储介质 | |
CN104168176A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231211 Address after: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000 Patentee after: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd. Patentee after: China Mobile (Zhejiang) Innovation Research Institute Co.,Ltd. Address before: No. 19, Jiefang East Road, Hangzhou, Zhejiang Province, 310016 Patentee before: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd. |
|
TR01 | Transfer of patent right |