CN110971669B - 消息通知方法、装置、服务器、电子设备及可读存储介质 - Google Patents
消息通知方法、装置、服务器、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN110971669B CN110971669B CN201911096521.0A CN201911096521A CN110971669B CN 110971669 B CN110971669 B CN 110971669B CN 201911096521 A CN201911096521 A CN 201911096521A CN 110971669 B CN110971669 B CN 110971669B
- Authority
- CN
- China
- Prior art keywords
- session instance
- session
- instances
- server
- instance set
- 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.)
- Active
Links
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/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/224—Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
-
- 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/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- 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/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Abstract
本公开提供了一种消息通知方法、装置、服务器、电子设备及可读存储介质,所述方法应用于服务器,包括:响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例;将所述第一会话实例添加到所述用户账号对应的会话实例集合中;在检测到所述会话实例集合中的所述第二会话实例的通知消息时,通过所述第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息;通过所述会话实例集合中的所述第一会话实例将所述通知消息发送给所述客户端,所述网页页面显示所述通知消息。
Description
技术领域
本公开涉及信息处理技术领域,尤其涉及一种消息通知方法、装置、服务器、电子设备及可读存储介质。
背景技术
在现有技术中,越来越多的用户经常登录网站上传文件或下载自己需要查看的文件,如上传或下载某个安装包;或者在网站上办理业务事项,如,上传照片以办理身份信息或通过验证等。
以用户通过网站上传安装包为例,在用户登录网站后,打开与上传安装包相应的网页,该网页便与该网站的服务器产生了一个会话链接,通过该会话链接进行网页与网站服务器的信息交互。实际中,受网络质量的影响,该信息交互的时长并不稳定,则会出现用户上传完安装包需要耗费较长的时间,或者,上传完安装包但是因为网络质量低的原因,返回的上传消息迟迟未到达网页,此种情况下,用户一般很难确定该安装包是否上传成功,因此,用户会选择刷新网页。当用户刷新网页时,虽然服务器所执行的上传安装包的进度并不会因刷新而停止;但是,此时刷新后的网页与该网站的服务器产生了一个新的会话链接,该新的会话链接仅负责当次刷新后的网页与服务器之间的信息交互,也就是说,用户并不能接收到在刷新前,其在网页上上传的安装包的进度消息,用户体验较差。
为解决网页与服务器重新建立链接时,用户接收不到上次在该网页上进行的操作所产生的进度消息的问题,相关技术提供的解决方案是:定时发送消息到服务器查询进度,直到任务完成才结束轮询,但是,这样的方式又造成网络开销增加和代码量被额外增多的问题。
公开内容
本公开提供一种消息通知方法、装置、服务器、电子设备及可读存储介质,以至少解决相关技术中网页与服务器重新建立链接时,用户接收不到上次在该网页上进行的操作所产生的进度消息的问题。本公开的技术方案如下:
本公开实施例的第一方面,提供一种消息通知方法,应用于服务器,所述方法包括:
响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例,所述本次重新连接请求用于请求与所述服务器重新建立关于网页页面的连接;
将所述第一会话实例添加到所述用户账号对应的会话实例集合中,所述会话实例集合中预先存储有所述客户端已发送的携带所述用户账号的历史重新连接请求所对应的第二会话实例,且所述历史重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接;
在检测到所述会话实例集合中的所述第二会话实例的通知消息时,通过所述第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息;
通过所述会话实例集合中的所述第一会话实例将所述通知消息发送给所述客户端,所述网页页面显示所述通知消息。
可选地,响应于对客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例之后,所述方法还包括:
响应于所述客户端发送的携带所述用户账号的再次重新连接请求,生成相应的第三会话实例,所述再次重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接;
确定所述会话实例集合中当前所包括的会话实例的个数;
在所述会话实例集合中当前所包括的会话实例的个数达到预设阈值的情况下,对所述会话实例集合进行更新,并将所述第三会话实例添加到所述更新后的会话实例集合中;
在所述会话实例集合中当前所包括的会话实例的个数未达到所述预设阈值的情况下,将所述第三会话实例添加到所述会话实例集合中。
可选地,对所述会话实例集合进行更新包括:
在将所述第一会话实例添加到所述用户账号对应的会话实例集合中之后,确定所述会话实例集合中每个会话实例被使用的次数;
将被使用的次数少于预设次数的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
可选地,对所述会话实例集合进行更新包括:
在将所述第一会话实例添加到所述用户账号对应的会话实例集合中之后,确定所述会话实例集合中每个会话实例的生成时间;
将生成时间距离当前时间的时间差大于预设时间差阈值的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
本公开实施例的第二方面,提供一种消息通知装置,应用于服务器,所述装置包括:
会话实例生成模块,用于响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例;所述本次重新连接请求用于请求与所述服务器重新建立关于网页页面的连接;
会话实例添加模块,用于将所述第一会话实例添加到所述用户账号对应的会话实例集合中,所述会话实例集合预先存储有所述客户端已发送的携带所述用户账号的历史重新连接请求所对应的第二会话实例,且所述历史重新连接请求用于请求与所述服务器建立关于所述网页页面的连接;
广播模块,用于在检测到所述会话实例集合中的所述第二会话实例的通知消息时,通过所述第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息;
消息通知模块,用于通过所述会话实例集合中的所述第一会话实例将所述通知消息发送给所述客户端,所述网页页面显示所述通知消息。
可选地,所述装置还包括:
第三会话实例生成模块,用于响应于所述客户端发送的携带所述用户账号的再次重新连接请求,生成相应的第三会话实例,所述再次重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接;
个数确定模块,用于确定所述会话实例集合中当前所包括的会话实例的个数;
第一添加模块,用于在所述会话实例集合中当前所包括的会话实例的个数达到预设阈值的情况下,对所述会话实例集合进行更新,并将所述第三会话实例添加到更新后的会话实例集合中;
第二添加模块,用于在所述会话实例集合中当前所包括的会话实例的个数未达到所述预设阈值的情况下,将所述第三会话实例添加到所述会话实例集合中。
可选地,所述装置还包括用于对所述会话实例集合进行更新的更新模块,所述更新模块包括:
次数确定模块,用于确定所述会话实例集合中每个会话实例被使用的次数;
第一会话实例集合更新模块,用于将被使用的次数少于预设次数的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
可选地,所述装置还包括用于对所述会话实例集合进行更新的更新模块,所述更新模块包括:
生成时间确定模块,用于确定所述会话实例集合中每个会话实例的生成时间;
第二会话实例集合更新模块,用于将生成时间距离当前时间的时间差大于预设时间差阈值的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
本公开实施例的第三方面,提供一种服务器,所述服务器上安装有消息通知装置,所述消息通知装置用于执行所述的消息通知方法。
本公开实施例的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器被配置为:执行所述的消息通知方法。
本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器端的处理器执行时,使得服务器能够执行所述的消息通知方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开的实施例中,响应于客户端发送的本次重新连接请求,生成第一会话实例,并将该第一会话实例添加到会话实例集合中,在会话实例集合中预先存储有客户端同一用户账号发送的历史重新连接请求所生成的第二会话实例,其中本次重新连接请求与历史重新连接请求均是针对的同一个网页页面,当第二会话实例产生通知消息时,便通过该第二会话实例向会话实例集合中广播该通知消息,之后,服务器便通过第一会话会话将该通知消息发送给客户端,所述网页页面上便可以显示该通知消息。这样,在重新进行网页连接之后,还能收到之前在网页上已经开始的任务所产生的通知消息,以使用户能获知到该网页页面在与服务器的历史连接中已经开始的操作的进度情况。同时,由于在检测到第二会话实例具有通知消息时,主动将该通知消息广播给会话实例集合中的所有会话实例,与轮询通知消息相比,降低了网络开销和代码量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种消息通知方法的流程图;
图2是根据一示例性实施例示出的另一种消息通知方法中对会话实例集合进行更新的流程示意图;
图3是根据一示例性实施例示出的另一种消息通知方法中对会话实例集合进行更新的流程示意图;
图4是根据一示例性实施例示出的另一种消息通知方法中将再次产生的会话实例添加到会话实例集合的的流程示意图;
图5是根据一示例性实施例示出的一种消息通知装置的框图;
图6根据一示例性实施例实处的一种服务器的框图;
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种消息通知方法的流程图,如图1所示,该消息通知方法可以应用于服务器中,所述服务器可以是广义上的服务器,从广义上讲,该服务器可以指是为采用HTTP协议进行网络通信的各种业务提供服务的设备。具体地,可以包括以下步骤。
在步骤S11中,响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例。
其中,所述本次重新连接请求用于请求与所述服务器重新建立关于网页页面的连接。
其中,客户端可以与服务器进行通信连接,其可以是提供某一种网络业务的客户端,例如,提供社交业务的客户端、提供文化娱乐的客户端等。本公开实施例中,用户可以通过浏览器登录该客户端,并在登录后,可以在浏览器中进行相关的业务操作。本次重新连接请求可以理解为是客户端根据当前登录客户端的用户在网页页面上进行的本次刷新操作或本次恢复操作而触发的,其中的本次恢复操作可以是指客户端因断电而导致与服务器之间的连接断开后,用户在客户端上进行的恢复网页页面连接时的操作。该连接请求可以是采用htttp协议进行通信的网页连接请求。
其中,用户账号可以是当前登录客户端的用户的用户账号,该用户账号可以是sessionId,该sessionId是服务器分配给用户账号的唯一ID,相当于该用户的身份标识。实际中,在客户端每次请求与服务器建立网页页面的连接时所发送的重新连接请求都可以携带该用户账号。
实际中,服务器在接收到客户端发送的本次重新连接请求时,可以响应于本次重新连接请求,相应地生成一个第一会话实例。
以社交业务的客户端为例,用户A登录网页页面B,若用户A在当前刷新了该网页页面B,则客户端根据用户A刷新网页页面B的操作向服务器发送携带用户A的用户账号的本次重新连接请求,服务器相应地生成第一会话实例。或者,若运行该客户端的设备突然断电,用户A在设备上电后恢重新登录客户端并选择恢复网页页面B,则客户端根据恢复网页页面B的操作向服务器发送携带用户A的用户账号的本次重新连接请求。
在步骤S12中,将所述第一会话实例添加到会话实例集合中。
其中,所述会话实例集合中预先存储有所述客户端已发送的携带所述用户账号的历史重新连接请求所对应的第二会话实例,且所述历史重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接。
本公开实施例中,会话实例集合可以理解为是至少两个会话实例的队列集合,且与上述用户账号对应,该会话实例集合中可以包括响应于历史重新连接请求而生成的第二会话实例。
其中,历史重新连接请求可以是指在当前时间之前,客户端发送的请求建立关于网页页面的多个重新连接请求中的任意一个重新连接请求,每一个在当前时间之前发送的重新连接请求都可以携带上述的用户账号。即,历史重新连接与本次重新重新连接均是根据同一用户在网页页面上进行的刷新操作或恢复操作所发送的。例如,用户A在9:00登录网页页面B,在该网页页面B上上传了安装包之后,用户B分别在时刻9:10、9:20、9:25刷新了网页页面B,其中,9:25是最近一次的刷新,则历史重新连接请求可以是9:10的刷新操作所触发的重新连接请求,也可以是9:20的刷新操作所触发的重新连接请求,这二个重新连接请求中均可以包括用户A的用户账号。
具体地,服务器可以创建与该用户账号相对应的会话实例集合,该会话实例集合可以以用户的sessionId作为标识。在响应于携带该用户账号的历史重新连接请求所生成第二会话实例时,都可以将该第二会话实例添加到该会话实例集合中,以将与该sessionId相关的所有重新连接请求所对应生成的会话实例都添加到该会话实例集合中。
其中,第一会话实例和第二会话实例均可以为socket实例,socket实例可以理解为是服务器为客户端同一用户账号创建的,管理与客户端同一用户账号之间的会话连接的对象。
可选地,在一种实施方式中,服务器可以针对用户账号创建一个socket管理器,该socket管理器可以以该用户账号的sessionId作为key值来进行管理,并可以将所述第一会话实例和第二会话实例添加至该socket管理器中。其中,socket管理器可以理解为是针对用户账号的至少两个socket实例的房间或集群,其标识可以为用户账号的sessionId。
以社交业务的客户端为例,用户A在9:00登录网页页面B,在该网页页面B上上传了安装包之后,用户B分别在时刻9:10、9:20、9:25刷新了网页页面B,服务器可以为用户A创建一个socket管理器,将针对9:10、9:20、9:25的刷新网页页面B所相应生成的三个会话实例均添加到该socket管理器中。
在步骤S13中,在检测到所述会话实例集合中的所述第二会话实例的通知消息时,通过所述第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息。
本公开实施中,会话实例集合中的所有会话实例是指会话实例集合中当前存在的全部的会话实例。因本公开实施例中的第一会话实例和第二会话实例均可以为socket实例,socket实例可以具有广播的功能,因此,当检测到该第二会话实例对应的产生有通知消息时,可以通过该第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息。这样,会话实例集合中的第一会话实例便都接收到了该通知消息。
仍以社交业务的客户端为例,用户A打开网页页面B上传安装包,上传完成安装包后,用户A第一次刷新网页页面查看任务进度,此时,服务器相应地生成第二会话实例。但是,往往打包程序耗时过久或者进度不稳定,这样,用户A在第一次刷新后等待任务通知的时间过长,则用户A进行了第二次刷新了连接,此时,服务器对应生成第一会话实例,在生成第一会话实例后,服务器与客户端之间便通过该第一会话实例进行通信,但是,于服务器而言,其针对第一次刷新的查看任务进度的操作不会停止,在第二会话实例产生了上传安装包的任务进度消息时,该任务进度消息会通过该第二会话实例广播给会话实例集合,这样,第一会话实例便接收到了第二会话实例的任务进度消息。
在步骤S14中,通过所述会话实例集合中的第一会话实例将所述通知消息发送给所述客户端。
其中,所述网页页面显示所述通知消息。
实际中,由于服务器与客户端之间的每次会话连接都是通过最新生成的会话实例进行通讯,当会话实例集合中的所有会话实例都接收到了第二会话实例的通知消息时,第一会话实例也接收到了该通知消息,由于服务器与客户端之间在当前是通过该第一会话实例进行通信,服务器便可以通过第一会话实例将通知消息返回给客户端。
这样,针对用户在一段时间内,在网页页面上进行刷新或恢复时触发的多次重新连接生成的多个会话实例,每个会话实例所产生的通知消息便都可以通过当前会话实例发送给客户端,即客户端可以接收到前几次刷新或恢复网页页面时所产生的通知消息,并可以将该通知消息显示在该次刷新或恢复的网页页面上。这样,用户便能获知到当前刷新或恢复网页页面之前已经开始的操作的进度情况,提高用户体验。
仍以社交业务的客户端为例,用户A在9:00登录网页页面B,在该网页页面B上上传了安装包之后,用户A分别在时刻9:10、9:20、9:25刷新了网页页面B以查看上传安装包的任务进度,对于每一次在网页页面B上的刷新操作,服务器均对应生成会话实例,分别为实话实例C(针对9:10的刷新)、会话实例D(针对9:20的刷新)、会话实例E(针对9:25的刷新),则当前服务器与客户端之间是通过会话实例E进行通信。当会话实例C产生了查看任务进度的进度消息时,会话实例C将该查看任务进度的进度消息广播给会话实例集合中,则会话实例E便接收到该查看任务进度的进度消息,因当前服务器与客户端之间是通过会话实例E,则通过会话实例E便可以将查看任务进度的进度消息发送给客户端,以使客户端能接收到并在网页页面B上显示查看任务进度的进度消息。进而,使得用户A可以在9:25刷新的网页页面B上查看9:10分刷新的网页页面B所产生的进度消息。避免用户A以为任务失败,而多次进行刷新操作所造成的网络成本增加、用户体验度不高的问题。
通过上述技术方案,客户端能在重新连接网页页面之后,还能收到重新连接网页页面之前,在网页页面上进行的已经开始的任务所产生的通知消息,以使用户能获知到在本次重新连接之前已经开始的操作的进度情况。同时,由于在检测到会话实例集合中的第二会话实例具有通知消息时,主动将该通知消息广播给会话实例集合中的所有会话实例,与定时向服务器发送消息查询进度的轮询方式相比,本申请降低了网络开销和代码量。
实际中,服务器响应于携带所述用户账号的每一个重新连接请求,都可以生成相应的一个会话实例,并可以将生成的每一个会话实例都添加到该用户账号对应的会话实例集合中,这样,会话实例集合中便可以包括多个数量的会话实例。在一种可选的实施例中,本公开还可以在步骤S12之后,对会话实例集合进行更新。参照图2,示出了该消息通知方法中对会话实例集合进行更新的流程示意图,具体地,可以包括以下步骤:
在步骤S15中,确定所述会话实例集合中每个会话实例被使用的次数。
因每个会话实例对应的任务进度若有通知消息产生,则会通过该会话实例将通知消息广播到会话实例集合,因此,可以统计每个会话实例广播通知消息的次数,将该次数作为每个会话实例被使用的次数。
在步骤S16中,将被使用的次数少于预设次数的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
其中,预设次数可以根据需求预先设定,当某会话实例的被使用次数少于该预设次数时,则可以表征该会话实例不再产生通知消息,或者,是很久之前产生的会话连接,这样,便可以将该会话实例删除,以减少会话实例集合中的会话实例的个数,减轻网络成本。
需要说明的是,当前使用的会话实例并不在删除之列,也即是,将除当前使用的会话实例以外的其余的被使用次数少于预设次数的会话实例从会话实例集合中删除。
实际中,可以每间隔预设的时间便对会话实例集合进行更新,其中,若在一次更新过程中,确定出会话实例集合中不存在使用的次数少于预设次数的会话实例,则此次可以不对该会话实例集合进行更新。
相应地,本公开还提供了另一种消息通知方法的实施例,在该实施例中,可以在步骤S12之后对会话实例集合进行更新。参照图3,示出了该消息通知方法中对会话实例集合进行更新的流程示意图,具体地,可以包括以下步骤:
在步骤S15’中,确定所述会话实例集合中每个会话实例的生成时间。
因服务器响应于携带所述用户账号的每一个重新连接请求,都会生成相应的会话实例,则该生成时间也可以表征服务器响应重新连接请求时的时刻。
在步骤S16’中,将生成时间距离当前时间的时间差大于预设时间差阈值的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
本实施例中,预设时间差阈值可以预先设定,例如,设定为10分钟,这样,10分钟之前生成的会话实例便可以从会话实例集合中删除。实际中,距离当前时间较久的会话实例很大概率已经没有任务进度,或者说任务进度消息已经被广播,这样,将其从所述会话实例集合中删除后,可以减少会话实例集合中的会话实例的个数,减轻网络成本。
实际中,可以每间隔预设的时间便对会话实例集合进行更新,其中,若在一次更新过程中,确定出会话实例集合中不存在生成时间距离当前时间的时间差大于预设时间差阈值的会话实例,则此次可以不对该会话实例集合进行更新。
相应地,本公开还提供了另一实施例中的消息通知方法,在该实施例中,包括上述步骤S11至步骤S14,以及上述图2或图3所示的对会话实例集合进行更新的步骤,还可以包括将再次产生的会话实例添加到会话实例集合的步骤。参照图4,示出了该消息通知方法中将再次产生的会话实例添加到会话实例集合的流程示意图,具体地,可以包括以下步骤:
在步骤S21中,响应于所述客户端发送的携带所述用户账号的再次重新连接请求,生成相应的第三会话实例。
该步骤S21可以在步骤S14之后,即在客户端发送本次重新连接请求之后,客户端根据用户在网页页面上的刷新或恢复操作而再次触发了再次重新连接请求,所述再次重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接,针对该重新连接请求服务器生成相应的第三会话实例,并重新通过该第三会话实例与客户端通信,该第三会话实例可以称为新生成的会话实例。
在步骤S22中,确定所述会话实例集合中当前所包括的会话实例的个数。
实际中,在新生成会话实例后,需要将新生成的会话实例(即第三会话实例)加入到会话实例集合中,在本申请中,可以在将新生成的会话实例添加到会话实例集合时,判断该会话实例集合是否有足够的空间添加该新生成的会话实例。具体地:
若所述会话实例集合中当前所包括的会话实例的个数达到预设阈值,则转步骤S23,以上述步骤S15至步骤S16或者步骤S15’至步骤S16’所述的方法对会话实例集合进行更新。也就是说,实际中对会话实例集合进行更新的过程既可以在步骤S12之后进行,以每间隔预设的一段时间便对该会话实例集合进行更新;也可以在每添加一个新生成的会话实例时进行,若会话实例集合中的会话实例个数超过预设阈值时,便对该会话实例集合进行更新。
若所述会话实例集合中当前所包括的会话实例的个数未达到所述预设阈值,则转步骤S24,以直接向会话实例集合中添加该新生成的会话实例。
实际中,会话实例集合中的会话实例的个数可以被控制在一定的范围内,以避免较多的会话实例个数增加网络成本。其中,预设阈值可以根据实际情况预先设定,该预设阈值反映了会话实例集合中最多能容纳的会话实例的个数。
在步骤S23中,对所述会话实例集合进行更新,并将所述第三会话实例添加到更新后的会话实例集合中。
实际中,当会话实例集合中的个数达到了预设阈值时,可以按照上述步骤S15至步骤S16所述的方法,将使用次数少于预设次数的会话实例从会话实例集合中删除,以形成更新后的会话实例集合,进而可以将该新生成的第三会话实例添加到更新后的会话实例中。或者,按照步骤S15’至步骤S16’所述的方法,将生成时间距离当前时间的时间差大于预设时间差阈值的会话实例从会话实例集合中删除,以得到更新后的会话实例集合,进而再将该新生成的第三会话实例添加到更新后的会话实例集合中。
实际中,若在所述会话实例集合中当前所包括的会话实例的个数达到预设阈值的情况下,又确定出会话实例集合中不存在使用的次数少于预设次数的会话实例,以及不存在距离当前时间的时间差大于预设时间差阈值的会话实例时,则可以将会话实例集合中生成时间最早的会话实例删除,或者,将会话实例集合中除当前正在使用的会话实例外的其他会话实例中使用次数最少的会话实例删除,以对会话实例集合进行更新。
示例地,以当前会话实例集合中的会话实例的个数为5个,预设阈值为4为例,则当前会话实例集合中的会话实例个数超过了4个,需要在该当前的会话实例集合中删除一个会话实例,则可以将其中生成时间距离当前时间的时间差大于预设时间差阈值的一个会话实例E删除,进而将新生成的会话实例加入该删除了会话实例E的会话实例集合中。或者,将其中的使用次数少于预设次数的会话实例F删除,进而将新生成的会话实例加入该删除了会话实例F的会话实例集合中。若确定出会话实例集合中不存在使用的次数少于预设次数的会话实例,以及不存在距离当前时间的时间差大于预设时间差阈值的会话实例时,则可以将会话实例集合中生成时间最早的会话实例G删除,或者,将会话实例集合中除当前正在使用的会话实例外的其他会话实例中使用次数最少的会话实例H删除,以对会话实例集合进行更新。
在步骤S24中,将所述第三会话实例添加到所述会话实例集合中。
当会话实例集合中的个数未达到预设阈值时,表示会话实例集合中还可以添加该第三会话实例,则可以直接将所述第三会话实例添加到所述会话实例集合中。
采用上述技术方案时,由于在将新生成的第三会话实例添加到会话实例集合时,可以根据会话实例集合中当前包括的会话实例个数,将第三会话实例添加到会话实例集合或者更新后的会话实例集合中。因此,动态保证了会话实例集合中的会话实例个数不超过预设阈值,从而使得网络成本得到了控制,提高了本公开实施例的消息通知处理效率。
图5是根据一示例性实施例示出的一种消息通知装置的装置框图。参照图5,该消息通知装置应用于服务器,具体可以包括以下模块:
会话实例生成模块51,被配置为用于响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例;所述本次重新连接请求用于请求与所述服务器重新建立关于网页页面的连接;
会话实例添加模块52,被配置为用于将所述第一会话实例添加到所述用户账号对应的会话实例集合中,所述会话实例集合预先存储有所述客户端已发送的携带所述用户账号的历史重新连接请求所对应的第二会话实例,且所述历史重新连接请求用于请求与所述服务器建立关于所述网页页面的连接;
广播模块53,被配置为用于在检测到所述会话实例集合中的所述第二会话实例的通知消息时,通过所述第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息;
消息通知模块54,被配置为用于通过所述会话实例集合中的所述第一会话实例将所述通知消息发送给所述客户端,所述网页页面显示所述通知消息。
可选地,所述装置还具体可以包括用于对所述会话实例集合进行更新的更新模块,所述更新模块包括以下模块:
次数确定模块,被配置为用于确定所述会话实例集合中每个会话实例被使用的次数;
第一会话实例集合更新模块,被配置为用于将被使用的次数少于预设次数的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
可选地,所述装置还具体可以包括用于对所述会话实例集合进行更新的更新模块,所述更新模块包括以下模块:
生成时间确定模块,被配置为用于确定所述会话实例集合中每个会话实例的生成时间;
第二会话实例集合更新模块,被配置为用于将生成时间距离当前时间的时间差大于预设时间差阈值的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新
结合以上实施例,本公开实施例提供了又一种消息通知装置的结构框图,该消息通知装置可以包括会话实例生成模块51、会话实例添加模块52、广播模块53、消息通知模块54、次数确定模块及第一会话实例集合更新模块;或者,可以包括会话实例生成模块51、会话实例添加模块52、广播模块53、消息通知模块54、上述的时间确定模块及第二会话实例集合更新模块;具体地,还可以包括以下模块:
第三会话实例生成模块,被配置为用于响应于所述客户端发送的携带所述用户账号的再次重新连接请求,生成相应的第三会话实例,所述再次重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接;
个数确定模块,被配置为用于确定所述会话实例集合中当前所包括的会话实例的个数;
第一添加模块,用于在所述会话实例集合中当前所包括的会话实例的个数达到预设阈值的情况下,对所述会话实例集合进行更新,并将所述第三会话实例添加到更新后的会话实例集合中。
第二添加模块,用于在所述会话实例集合中当前所包括的会话实例的个数未达到所述预设阈值的情况下,将所述第三会话实例添加到所述会话实例集合中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种服务器的框图。如图6,所述服务器600上安装有消息通知装置61,所述消息通知装置61用于执行所述的消息通知方法。
具体地,服务器600可以包括处理组件64、电源组件66、网络接口62、存储组件65及输入输出接口63,其中,消息通知装置61可以与处理组件64及存储组件65进行通信,消息通知装置61上可以存储计算机程序,可以由处理组价64运行所述消息通知装置61上的计算机程序,以使服务器600能够执行上述消息通知方法。其中,网络接口62可以将服务器600连接到网络中,电源组件66可以执行服务器600的电源管理。
图7是根据一示例性实施例示出的一种电子设备700的框图,该电子设备700可以包括存储器72、处理器71及存储在存储器72上并可在处理器上运行的计算机程序,所述处理器被配置为执行所述的消息通知方法。
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器端的处理器执行时,使得服务器能够执行所述的消息通知方法。可选地,可读存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (11)
1.一种消息通知方法,应用于服务器,其特征在于,所述方法包括:
响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例,所述本次重新连接请求用于请求与所述服务器重新建立关于网页页面的连接;
将所述第一会话实例添加到所述用户账号对应的会话实例集合中,所述会话实例集合中预先存储有所述客户端已发送的携带所述用户账号的历史重新连接请求所对应的第二会话实例,且所述历史重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接;
在检测到所述会话实例集合中的所述第二会话实例的通知消息时,通过所述第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息;
通过所述会话实例集合中的所述第一会话实例将所述通知消息发送给所述客户端,所述网页页面显示所述通知消息。
2.根据权利要求1所述的方法,其特征在于,响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例之后,所述方法还包括:
响应于所述客户端发送的携带所述用户账号的再次重新连接请求,生成相应的第三会话实例,所述再次重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接;
确定所述会话实例集合中当前所包括的会话实例的个数;
在所述会话实例集合中当前所包括的会话实例的个数达到预设阈值的情况下,对所述会话实例集合进行更新,并将所述第三会话实例添加到更新后的会话实例集合中;
在所述会话实例集合中当前所包括的会话实例的个数未达到所述预设阈值的情况下,将所述第三会话实例添加到所述会话实例集合中。
3.根据权利要求2所述的方法,其特征在于,对所述会话实例集合进行更新,包括:
在将所述第一会话实例添加到所述用户账号对应的会话实例集合中之后,确定所述会话实例集合中每个会话实例被使用的次数;
将被使用的次数少于预设次数的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
4.根据权利要求2所述的方法,其特征在于,对所述会话实例集合进行更新,包括:
在将所述第一会话实例添加到所述用户账号对应的会话实例集合中之后,确定所述会话实例集合中每个会话实例的生成时间;
将生成时间距离当前时间的时间差大于预设时间差阈值的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
5.一种消息通知装置,应用于服务器,其特征在于,所述装置包括:
会话实例生成模块,用于响应于客户端发送的携带用户账号的本次重新连接请求,生成相应的第一会话实例;所述本次重新连接请求用于请求与所述服务器重新建立关于网页页面的连接;
会话实例添加模块,用于将所述第一会话实例添加到所述用户账号对应的会话实例集合中,所述会话实例集合预先存储有所述客户端已发送的携带所述用户账号的历史重新连接请求所对应的第二会话实例,且所述历史重新连接请求用于请求与所述服务器建立关于所述网页页面的连接;
广播模块,用于在检测到所述会话实例集合中的所述第二会话实例的通知消息时,通过所述第二会话实例向所述会话实例集合中的所有会话实例广播所述通知消息;
消息通知模块,用于通过所述会话实例集合中的所述第一会话实例将所述通知消息发送给所述客户端,所述网页页面显示所述通知消息。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第三会话实例生成模块,用于响应于所述客户端发送的携带所述用户账号的再次重新连接请求,生成相应的第三会话实例,所述再次重新连接请求用于请求与所述服务器重新建立关于所述网页页面的连接;
个数确定模块,用于确定所述会话实例集合中当前所包括的会话实例的个数;
第一添加模块,用于在所述会话实例集合中当前所包括的会话实例的个数达到预设阈值的情况下,对所述会话实例集合进行更新,并将所述第三会话实例添加到更新后的会话实例集合中;
第二添加模块,用于在所述会话实例集合中当前所包括的会话实例的个数未达到所述预设阈值的情况下,将所述第三会话实例添加到所述会话实例集合中。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括用于对所述会话实例集合进行更新的更新模块,所述更新模块包括:
次数确定模块,用于确定所述会话实例集合中每个会话实例被使用的次数;
第一会话实例集合更新模块,用于将被使用的次数少于预设次数的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括用于对所述会话实例集合进行更新的更新模块,所述更新模块包括:
生成时间确定模块,用于确定所述会话实例集合中每个会话实例的生成时间;
第二会话实例集合更新模块,用于将生成时间距离当前时间的时间差大于预设时间差阈值的会话实例从所述会话实例集合中删除,以完成对所述会话实例集合的更新。
9.一种服务器,其特征在于,所述服务器上安装有消息通知装置,所述消息通知装置用于执行权利要求1-4任一项所述的消息通知方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器被配置为:执行如权利要求1-4任一所述的消息通知方法。
11.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由服务器端的处理器执行时,使得服务器能够执行权利要求1-4任一所述的消息通知方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096521.0A CN110971669B (zh) | 2019-11-11 | 2019-11-11 | 消息通知方法、装置、服务器、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911096521.0A CN110971669B (zh) | 2019-11-11 | 2019-11-11 | 消息通知方法、装置、服务器、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110971669A CN110971669A (zh) | 2020-04-07 |
CN110971669B true CN110971669B (zh) | 2022-03-01 |
Family
ID=70030630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911096521.0A Active CN110971669B (zh) | 2019-11-11 | 2019-11-11 | 消息通知方法、装置、服务器、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110971669B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032182A (en) * | 1997-07-11 | 2000-02-29 | International Business Machines Corporation | Method, apparatus and computer program product for user selected refreshing of internet web pages |
CN101291273A (zh) * | 2008-06-12 | 2008-10-22 | 网易有道信息技术(北京)有限公司 | 一种网页间通信的方法、系统及在音乐搜索中的应用 |
CN102426579A (zh) * | 2011-08-25 | 2012-04-25 | 中兴通讯股份有限公司 | 一种基于网络方式导入导出文件的方法 |
CN102521108A (zh) * | 2011-12-15 | 2012-06-27 | 华为技术有限公司 | 网页系统中执行任务时实时监控的方法和装置 |
CN103891236A (zh) * | 2012-06-30 | 2014-06-25 | 华为技术有限公司 | 恢复会话内容的传输的方法,终端和服务器 |
CN103973823A (zh) * | 2013-01-29 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 一种网站动态消息的获取方法和装置 |
CN106611010A (zh) * | 2015-10-26 | 2017-05-03 | 北京国双科技有限公司 | 网页加载速度的确定方法和装置 |
CN106657132A (zh) * | 2017-01-09 | 2017-05-10 | 北京小米移动软件有限公司 | 访问网站的方法和装置 |
CN106714245A (zh) * | 2015-07-29 | 2017-05-24 | 中兴通讯股份有限公司 | 数据业务处理方法及装置 |
CN108255890A (zh) * | 2016-12-29 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
-
2019
- 2019-11-11 CN CN201911096521.0A patent/CN110971669B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032182A (en) * | 1997-07-11 | 2000-02-29 | International Business Machines Corporation | Method, apparatus and computer program product for user selected refreshing of internet web pages |
CN101291273A (zh) * | 2008-06-12 | 2008-10-22 | 网易有道信息技术(北京)有限公司 | 一种网页间通信的方法、系统及在音乐搜索中的应用 |
CN102426579A (zh) * | 2011-08-25 | 2012-04-25 | 中兴通讯股份有限公司 | 一种基于网络方式导入导出文件的方法 |
CN102521108A (zh) * | 2011-12-15 | 2012-06-27 | 华为技术有限公司 | 网页系统中执行任务时实时监控的方法和装置 |
CN103891236A (zh) * | 2012-06-30 | 2014-06-25 | 华为技术有限公司 | 恢复会话内容的传输的方法,终端和服务器 |
CN103973823A (zh) * | 2013-01-29 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 一种网站动态消息的获取方法和装置 |
CN106714245A (zh) * | 2015-07-29 | 2017-05-24 | 中兴通讯股份有限公司 | 数据业务处理方法及装置 |
CN106611010A (zh) * | 2015-10-26 | 2017-05-03 | 北京国双科技有限公司 | 网页加载速度的确定方法和装置 |
CN108255890A (zh) * | 2016-12-29 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 页面的处理方法和装置 |
CN106657132A (zh) * | 2017-01-09 | 2017-05-10 | 北京小米移动软件有限公司 | 访问网站的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110971669A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3490224B1 (en) | Data synchronization method and system | |
CN108833521B (zh) | 消息推送方法、装置、系统、计算机设备和存储介质 | |
JP2017037666A (ja) | カテゴリ情報の送信 | |
CN113296903A (zh) | 边缘云系统、边缘管控方法、管控节点及存储介质 | |
US10802896B2 (en) | Rest gateway for messaging | |
CN106713391B (zh) | 一种session信息的共享方法和共享系统 | |
CN115004673B (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN108259618B (zh) | 一种同步的数据交互处理方法及装置 | |
CN106993043B (zh) | 基于代理的数据通信系统和方法 | |
CN106603711B (zh) | 通信方法、系统及消息服务器 | |
CN106209966A (zh) | 管控端更新设备状态的方法、服务端的处理方法和装置 | |
CN110198335A (zh) | 消息同步方法及装置、电子设备及存储介质 | |
CN107592199B (zh) | 一种数据同步的方法和系统 | |
CN106411713B (zh) | 一种状态通知方法及服务器 | |
CN107872492B (zh) | 一种在服务端支持多用户编辑数据对象的方法和装置 | |
CN112039718A (zh) | 升级状态检测方法、服务端、设备及存储介质 | |
CN110324384B (zh) | 数据推送的方法和装置 | |
EP3373608B1 (en) | Method and apparatus for acquiring resources | |
CN110971669B (zh) | 消息通知方法、装置、服务器、电子设备及可读存储介质 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
JP6107218B2 (ja) | 制御装置,制御方法,および制御プログラム | |
CN110233791B (zh) | 数据去重方法和装置 | |
CN109542981B (zh) | 一种数据同步的系统及方法、电子设备、存储介质 | |
US10635997B1 (en) | Finite life instances | |
Alshareef et al. | Robust cloud management of MANET checkpoint sessions |
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 |