CN109639564A - 一种获取离线消息的方法、装置及计算机可读存储介质 - Google Patents
一种获取离线消息的方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109639564A CN109639564A CN201811521142.7A CN201811521142A CN109639564A CN 109639564 A CN109639564 A CN 109639564A CN 201811521142 A CN201811521142 A CN 201811521142A CN 109639564 A CN109639564 A CN 109639564A
- Authority
- CN
- China
- Prior art keywords
- message
- offline
- session
- target
- offline message
- 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
- 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/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- 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/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种获取离线消息的方法、装置及计算机可读存储介质,方法包括:在检测到目标用户离线后,将其他用户发送给目标用户的离线消息按照会话标识存储在数据库中;在检测到目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;在检测到目标用户对携带有目标会话的会话标识、目标会话内最大的消息序列号的目标会话的离线消息请求时,将数据库中目标会话的会话标识所对应的离线消息中、消息序列号大于目标会话内最大的消息序列号的离线消息推送给目标会话,数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。可以有效提升客户端对离线消息的响应速度。
Description
技术领域
本申请涉及实时通信(IM,Instant Messaging)技术领域,具体而言,涉及一种获取离线消息的方法、装置及计算机可读存储介质。
背景技术
目前流行的QQ、微信等社交类软件都属于IM软件,是基于客户端(Client)/服务器(Server)架构的通信系统。在进行IM通信时,发送侧的客户端不与接收侧的客户端直接通信,而是将消息发送至服务器,由服务器再将消息转发至接收侧的客户端,其中,服务器对于用户是透明的,因而,通信双方的用户并不会意识到服务器的存在,从而实现点对点的通信。由于IM通信具有的实时性以及便捷性,使之广泛应用于用户的日常生活和工作中。
在IM通信中,通信双方中的一方用户由于一些原因退出IM软件,另一方用户可能需要继续进行通信并发送消息,服务器在接收到消息后,如果监测到该一方用户处于离线状态,将该消息作为离线消息进行存储。在监测到离线的该一方用户上线后,将存储的离线消息推送至该一方用户进行加载、渲染并展示。
但该离线消息推送方法,当用户离线时间较长时,可能导致服务器存储的离线消息量非常庞大,因而,在该用户上线时,数量庞大的离线消息在进行加载、渲染时会导致客户端响应较慢,使得用户需要等待较长时间才能浏览到离线消息,从而影响用户的IM消息体验。
发明内容
有鉴于此,本申请的目的在于提供一种获取离线消息的方法、装置及计算机可读存储介质,用于解决现有技术中服务器推送离线消息时导致的客户端响应速度较慢的问题。
第一方面,本申请实施例提供了一种获取离线消息的方法,该方法包括:
在检测到目标用户离线后,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中;
在检测到所述目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;
在检测到所述目标用户对目标会话的离线消息请求时,所述离线消息请求中携带有所述目标会话的会话标识、所述目标会话内最大的消息序列号,将目标离线消息推送给所述目标会话,所述目标离线消息为所述数据库中所述目标会话的会话标识所对应的离线消息中、消息序列号大于所述目标会话内最大的消息序列号的离线消息,所述数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。
可选地,所述将目标离线消息推送给所述目标会话,包括:
从所述数据库中获取待发送离线消息集,所述待发送离线消息集中包括:与所述目标会话的会话标识相对应的、且消息序列号大于所述目标会话内最大的消息序列号的离线消息;
判断所述待发送离线消息集中各离线消息的消息序列号是否严格递增,如果不严格递增,生成空缺的消息序列号所对应的空消息,并将所述空消息添加至所述待发送离线消息集,所述空消息在客户端中不展示;
将所述待发送离线消息集推送给所述目标会话。
可选地,所述将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中,包括:
依据所述其他用户发送给所述目标用户的离线消息中的会话标识,查询所述数据库中是否存在与所述其他用户发送给所述目标用户的离线消息中的会话标识对应的子数据库;
若不存在,则创建所述子数据库,并为所述其他用户发送给所述目标用户的离线消息设置消息序列号;若存在,获取所述子数据库中存储的离线消息的最大的消息序列号,按照预设的递增策略,为所述其他用户发送给所述目标用户的离线消息设置递增消息序列号,所述递增消息序列号大于所述子数据库中存储的离线消息的最大的消息序列号。
可选地,所述分别向每个会话标识对应的会话推送预定数量的离线消息,包括:
获取预先设置的用于表征所述目标用户消息浏览顺序的浏览配置信息;
将所述数据库中与所述浏览配置信息相匹配的离线消息推送给每个会话标识对应的会话。
可选地,在所述将目标离线消息推送给所述目标会话之后,所述方法还包括:
确定所述目标用户获取完所述目标会话的会话标识对应的所有离线消息,或者,在接收到所述目标用户针对所述目标会话的离线消息终止请求,删除所述数据库中所述目标会话的会话标识对应的离线消息。
第二方面,本申请实施例提供了一种获取离线消息的装置,该装置包括:
离线消息存储模块,用于在检测到目标用户离线后,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中;
初始离线消息推送模块,用于在检测到所述目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;
离线消息分段发送模块,用于在检测到所述目标用户对目标会话的离线消息请求时,所述离线消息请求中携带有所述目标会话的会话标识、所述目标会话内最大的消息序列号,将目标离线消息推送给所述目标会话,所述目标离线消息为所述数据库中所述目标会话的会话标识所对应的离线消息中、消息序列号大于所述目标会话内最大的消息序列号的离线消息,所述数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。
可选地,所述离线消息分段发送模块还用于:
从所述数据库中获取待发送离线消息集,所述待发送离线消息集中包括:与所述目标会话的会话标识相对应的、且消息序列号大于所述目标会话内最大的消息序列号的离线消息;
判断所述待发送离线消息集中各离线消息的消息序列号是否严格递增,如果不严格递增,生成空缺的消息序列号所对应的空消息,并将所述空消息添加至所述待发送离线消息集,所述空消息在客户端中不展示;
将所述待发送离线消息集推送给所述目标会话。
可选地,该装置还包括:
数据库更新模块,用于确定所述目标用户获取完所述目标会话的会话标识对应的所有离线消息,或者,在接收到所述目标用户针对所述目标会话的离线消息终止请求,删除所述数据库中所述目标会话的会话标识对应的离线消息。
第三方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
第四方面,本申请实施例提供一种计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
本申请实施例提供的一种获取离线消息的方法、装置及计算机可读存储介质,通过在检测到目标用户离线后,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中;在检测到所述目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;在检测到所述目标用户对目标会话的离线消息请求时,所述离线消息请求中携带有所述目标会话的会话标识、所述目标会话内最大的消息序列号,将目标离线消息推送给所述目标会话,所述目标离线消息为所述数据库中所述目标会话的会话标识所对应的离线消息中、消息序列号大于所述目标会话内最大的消息序列号的离线消息,所述数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。这样,可以基于目标用户的离线消息获取请求从服务器获取离线消息,降低用户等待客户端加载渲染所需的时间,避免客户端响应速度较慢的问题,同时,可以有效减少客户端的流量消耗,节约客户端的流量资源。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的获取离线消息的方法流程示意图;
图2为本申请实施例提供的获取离线消息的装置结构示意图;
图3为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的获取离线消息的方法流程示意图。如图1所示,应用于服务器,该方法包括:
步骤101,在检测到目标用户离线后,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中;
本申请实施例中,在IM通信过程中,通信双方通过连接请求构建会话通道进行通信,该通信双方的通信称之为一次会话,一会话对应一会话标识,会话持续的时间为该通信双方构建起会话通道至下一次该通信双方构建起一新会话为止。作为一可选实施例,会话包括:点对点会话以及点对多点会话,其中,对于单用户对单用户的私有通信,例如,QQ中用户A与用户B进行的通信,为点对点会话,对于QQ群中的群交流,为点对多点会话。
本申请实施例中,服务器接收到一方用户发送的消息后,依据发送的消息中包含的目标用户,如果确定该目标用户在线,则直接将该消息转发至该目标用户,在该目标用户对应该会话标识的界面中展示。如果确定该目标用户未在线,则需要存储发给该目标用户的消息,即针对其他用户发送给该目标用户的消息,获取消息中包含的会话标识,例如,IM会话标识,按照获取的IM会话标识和接收顺序,依次为获取的IM会话标识对应的消息设置消息序列号,形成离线消息,并将离线消息存储至数据库中。因而,作为一可选实施例,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中,包括:
A11,依据所述其他用户发送给所述目标用户的离线消息中的会话标识,查询所述数据库中是否存在与所述其他用户发送给所述目标用户的离线消息中的会话标识对应的子数据库;
A12,若不存在,则创建所述子数据库,并为所述其他用户发送给所述目标用户的离线消息设置消息序列号;若存在,获取所述子数据库中存储的离线消息的最大的消息序列号,按照预设的递增策略,为所述其他用户发送给所述目标用户的离线消息设置递增消息序列号,所述递增消息序列号大于所述子数据库中存储的离线消息的最大的消息序列号。
本申请实施例中,对于离线用户(目标用户),服务器可能会接收到多个针对该离线用户的多个消息,而该多个消息可能属于不同的会话。本申请实施例中,针对离线用户的每一会话,设置对应的一子数据库,用于存储该会话对应的离线消息,目标用户对应一个或多个子数据库。
本申请实施例中,服务器对接收的每条消息,确认接收消息的用户离线后,按照IM会话标识(维度),依据属于该IM会话维度的消息的接收顺序,对属于该IM会话维度的消息设置递增的消息序列号。这样,服务器可以保证属于同一IM会话维度的离线消息的消息序列号是严格递增的,以便后续检查是否存储了该会话的所有离线消息。
本申请实施例中,作为一可选实施例,消息序列号可以是自然数递增编号,例如,1、2、3、4、5、…。作为另一可选实施例,消息序列号也可以是其他形式的递增编号,例如,1、3、5、7、9等的奇数递增编号,也可以是2、4、6、8、10等的偶数递增编号,还可以是字符与数字的组合,或者,发送或接收消息时的时间点编号等,本实施例对此不作限定。
本申请实施例中,服务器在确认用户离线后,通过对接收的属于同一IM会话维度的消息进行严格递增的编号。这样,后续应用中,客户端可以根据本地存储的消息的编号是否连续来判断接收到的消息是否有遗漏,如果连续,说明接收到的消息没有遗漏,如果不连续,说明接收到的消息存在遗漏,从而可以针对不连续的消息,可以请求从服务器获取不连续部分的消息。
步骤102,在检测到所述目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;
本申请实施例中,作为一可选实施例,在目标用户上线后,服务器根据存储的针对该目标用户的各子数据库,从每一子数据库中,分别选取预定数量的离线消息,向该目标用户发送。作为另一可选实施例,也可以是该目标用户上线后,向服务器请求离线消息,服务器从每一子数据库中,分别选取预定数量的离线消息,向该目标用户发送。
本申请实施例中,服务器可以从子数据库中,随机选取预定数量的离线消息,也可以是选取头尾的预定数量的离线消息,还可以是从先到后推送预定数量、从后到前推送预定数量、或者从中间选取预定数量的离线消息推送,本申请实施例对此不作限定。
本申请实施例中,作为一可选实施例,服务器还可以在推送的离线消息中,携带存储的离线消息数。例如,针对某一子数据库,如果存储有100条离线消息,则可以在推送的会话标识对应的离线消息中,携带离线消息数为100的信息。
本申请实施例中,作为一可选实施例,所述分别向每个会话标识对应的会话推送预定数量的离线消息,包括:
获取预先设置的用于表征所述目标用户消息浏览顺序的浏览配置信息;
将所述数据库中与所述浏览配置信息相匹配的离线消息推送给每个会话标识对应的会话。
本申请实施例中,作为一可选实施例,浏览配置信息包括但不限于:从最新离线消息浏览的配置信息、从最早离线消息浏览的配置信息、或者从中间离线消息浏览的配置信息等。例如,如果目标用户的浏览配置信息为从最新离线消息浏览的配置信息,则从各子数据库中,按照离线消息的编号从大至小的顺序,分别选取预定数量的离线消息,如果目标用户的浏览配置信息为从最早离线消息浏览的配置信息,需要用户点击未读数实现,例如,通过点击会话,会话左上角会有一个未读数,点击未读数,可以浏览最早的离线消息,并按照离线消息的编号从小至大的顺序,从各子数据库中分别选取预定数量的离线消息。对于目标用户的浏览配置信息为从最早离线消息浏览的情形,在推送的信息中,携带离线消息数。
本申请实施例中,作为一可选实施例,目标用户对应的客户端在接收到离线消息后,同样地,按照服务器存储离线消息的方式,构建各子数据库,进行相应离线消息存储。
步骤103,在检测到所述目标用户对目标会话的离线消息请求时,所述离线消息请求中携带有所述目标会话的会话标识、所述目标会话内最大的消息序列号,将目标离线消息推送给所述目标会话,所述目标离线消息为所述数据库中所述目标会话的会话标识所对应的离线消息中、消息序列号大于所述目标会话内最大的消息序列号的离线消息,所述数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。
本申请实施例中,消息序列号为编号序列,目标用户依据展示的会话对应的离线消息,如果确定需要浏览更多的离线消息,则可以向服务器发起离线消息获取请求。
本申请实施例中,目标用户发起离线消息获取请求,可以是主动发起,也可以是自动触发发起,例如,目标用户可以在浏览一会话对应的离线消息的界面,通过点击界面中的“获取更多离线消息”控件,从控件呈现的子界面中,输入离线消息获取参数,例如,需要获取的离线消息的编号范围(编号序列)或获取全部离线消息或不再获取该会话的离线消息等,从而主动发起携带该会话对应的会话标识的离线消息获取请求。再例如,目标用户在浏览离线消息的过程中,客户端对目标用户的鼠标动作进行监控,例如,当监控到目标用户的鼠标动作使呈现的界面上移或下移的幅值超过预先设置的幅值阈值,则自动触发发起离线消息获取请求。
本申请实施例中,如果目标用户要求获取的离线消息数超过预先设定的离线消息数阈值,例如,超过预定数量,客户端在加载、渲染、展示离线消息时,按照离线消息数阈值,依次对离线消息进行加载、渲染、展示。这样,可以有效提升客户端的响应速度。
以下举一具体例子,对本申请实施例做详细说明。
目标用户从服务器接收到离线消息进行存储后,客户端本地存储的离线消息编号为:1、2、3、4、5、1000、1001、1002。
目标用户在通过滑动向上的方式查看离线消息时,客户端通过检测消息的编号,确认接收到的离线消息有遗漏,即未接收到编号为6至999的离线消息,在滑动向上的幅值超过幅值阈值后,向服务器发起离线消息获取请求。作为一可选实施例,根据编号为1000的离线消息,请求从服务器获取预定数量,例如,50条离线消息。
在从服务器获取50条离线消息后,客户端本地存储的离线消息的编号为:1、2、3、4、5、950、……、999、1000、1001、1002。
目标用户再次通过滑动向上的方式查看离线消息且滑动向上的幅值超过幅值阈值,客户端再次检测到接收到的离线消息有遗漏,从而再次从服务器请求获取预定数量的离线消息,直到本地存储的离线消息的编号形成严格递增序列后停止,或者,目标用户终止浏览离线消息。
本申请实施例中,由于基于目标用户的实际需求从服务器获取离线消息,服务器无需将全部离线消息推送至客户端,只需向客户端发送该客户端请求的离线消息,可以有效减少客户端的流量消耗,节约客户端的流量资源;进一步地,客户端从服务器依次获取预定数量的离线消息,这样,可以避免客户端加载并渲染服务器推送的全部离线消息而导致的客户端响应速度较慢的问题,有效降低用户等待加载渲染所需的时间,从而提升用户的消息业务体验;而且,通过服务器对离线消息的严格递增编号,可以保障客户端不漏接离线消息,避免用户缺失重要信息。
本申请实施例中,在客户端将消息发送至服务器后,可能由于服务器异常,例如,崩溃、死机、堵塞等,例如,服务器在对接收的消息进行递增编号后,在存储该消息时系统崩溃,使得服务器存储的离线消息不能按照严格递增编号进行存储。这样,由于服务器存储的离线消息的编号不再连续,使得客户端请求离线消息并存储后,确认本地存储的消息的编号不连续,从而向服务器请求,导致客户端与服务器的重复循环。因而,作为一可选实施例,将目标离线消息推送给所述目标会话,包括:
B11,从所述数据库中获取待发送离线消息集,所述待发送离线消息集中包括:与所述目标会话的会话标识相对应的、且消息序列号大于所述目标会话内最大的消息序列号的离线消息;
B12,判断所述待发送离线消息集中各离线消息的消息序列号是否严格递增,如果不严格递增,生成空缺的消息序列号所对应的空消息,并将所述空消息添加至所述待发送离线消息集,所述空消息在客户端中不展示;
B13,将所述待发送离线消息集推送给所述目标会话。
本申请实施例中,客户端向请求服务器请求离线消息,服务器先检查返回至客户端的离线消息的编号是否连续,如果不连续,服务器依据不连续对应的编号,补充空消息以及对应的编号进行占位,并返回至客户端进行本地存储。在客户端中,不显示标识的空消息,该空消息只是用于占位编号,以使客户端确认本地存储的离线消息连续,从而避免客户端连续请求服务器,造成不必要的流量浪费和服务器压力。
本申请实施例中,作为另一可选实施例,也可以通过判断客户端接收到的离线消息的序列号是否严格递增,从而确定是否有离线消息遗漏的情形,并在有消息遗漏时,向服务器发起请求获取遗漏的消息。
本申请实施例中,如果目标用户确定不再需要获取离线消息,为了降低服务器存储离线消息的资源开销,作为一可选实施例,在所述将目标离线消息推送给所述目标会话之后,该方法还包括:
确定所述目标用户获取完所述目标会话的会话标识对应的所有离线消息,或者,在接收到所述目标用户针对所述目标会话的离线消息终止请求,删除所述数据库中所述目标会话的会话标识对应的离线消息。
本申请实施例中,作为一可选实施例,如果目标用户上线后,浏览推送的针对一会话标识(目标会话标识)的离线消息,没有向服务器请求剩余的离线消息,且与该目标会话标识对应的用户进行了通信,例如,向该用户发送文本信息,表明该目标用户不需要再浏览服务器中存储的该目标会话标识对应的子数据库中的离线消息。因而,服务器可以删除该目标会话标识对应的子数据库,以节约存储空间。再例如,如果目标用户上线后浏览推送或请求获取的针对目标会话标识的离线消息,通过点击浏览界面中的“不再接收该会话的离线消息”控件,从而触发向服务器输出离线消息终止请求,表明该目标用户不需要再浏览服务器中存储的该目标会话标识对应的子数据库中的离线消息。
图2为本申请实施例提供的获取离线消息的装置结构示意图。如图2所示,该装置包括:
离线消息存储模块21,用于在检测到目标用户离线后,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中;
本申请实施例中,作为一可选实施例,消息序列号为递增的编号,包括但不限于:自然数递增编号、字符与数字的组合的递增编号、发送或接收消息时的时间点编号等。
本申请实施例中,作为一可选实施例,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中,包括:
依据所述其他用户发送给所述目标用户的离线消息中的会话标识,查询所述数据库中是否存在与所述其他用户发送给所述目标用户的离线消息中的会话标识对应的子数据库;
若不存在,则创建所述子数据库,并为所述其他用户发送给所述目标用户的离线消息设置消息序列号;若存在,获取所述子数据库中存储的离线消息的最大的消息序列号,按照预设的递增策略,为所述其他用户发送给所述目标用户的离线消息设置递增消息序列号,所述递增消息序列号大于所述子数据库中存储的离线消息的最大的消息序列号。
初始离线消息推送模块22,用于在检测到所述目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;
本申请实施例中,初始离线消息推送模块22可以从子数据库中,随机选取预定数量的离线消息,也可以是选取头尾的预定数量的离线消息。
本申请实施例中,作为一可选实施例,初始离线消息推送模块22还可以在推送的离线消息中,携带存储的离线消息数。
离线消息分段发送模块23,用于在检测到所述目标用户对目标会话的离线消息请求时,所述离线消息请求中携带有所述目标会话的会话标识、所述目标会话内最大的消息序列号,将目标离线消息推送给所述目标会话,所述目标离线消息为所述数据库中所述目标会话的会话标识所对应的离线消息中、消息序列号大于所述目标会话内最大的消息序列号的离线消息,所述数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。
本申请实施例中,目标用户发起离线消息获取请求,可以是主动发起,也可以是自动触发发起。
本申请实施例中,作为一可选实施例,离线消息分段发送模块23还用于:
从所述数据库中获取待发送离线消息集,所述待发送离线消息集中包括:与所述目标会话的会话标识相对应的、且消息序列号大于所述目标会话内最大的消息序列号的离线消息;
判断所述待发送离线消息集中各离线消息的消息序列号是否严格递增,如果不严格递增,生成空缺的消息序列号所对应的空消息,并将所述空消息添加至所述待发送离线消息集,所述空消息在客户端中不展示;
将所述待发送离线消息集推送给所述目标会话。
本申请实施例中,作为一可选实施例,初始离线消息推送模块22,还用于:
获取预先设置的用于表征所述目标用户消息浏览顺序的浏览配置信息;
将所述数据库中与所述浏览配置信息相匹配的离线消息推送给每个会话标识对应的会话。
本申请实施例中,浏览配置信息包括:从最新离线消息浏览的配置信息以及从最旧离线消息浏览的配置信息。
本申请实施例中,作为一可选实施例,该装置还包括:
数据库更新模块(图中未示出),用于确定所述目标用户获取完所述目标会话的会话标识对应的所有离线消息,或者,在接收到所述目标用户针对所述目标会话的离线消息终止请求,删除所述数据库中所述目标会话的会话标识对应的离线消息。
图3为本申请实施例提供的计算机设备的结构示意图。如图3所示,本申请一实施例提供的一种计算机设备,用于执行图1中的获取离线消息的方法,该设备包括存储器1000、处理器2000及存储在该存储器1000上并可在该处理器2000上运行的计算机程序,其中,上述处理器2000执行上述计算机程序时实现上述获取离线消息的方法的步骤。
具体地,上述存储器1000和处理器2000能够为通用的存储器和处理器,这里不做具体限定,当处理器2000运行存储器2000存储的计算机程序时,能够执行上述获取离线消息的方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种获取离线消息的方法,其特征在于,该方法包括:
在检测到目标用户离线后,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中;
在检测到所述目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;
在检测到所述目标用户对目标会话的离线消息请求时,所述离线消息请求中携带有所述目标会话的会话标识、所述目标会话内最大的消息序列号,将目标离线消息推送给所述目标会话,所述目标离线消息为所述数据库中所述目标会话的会话标识所对应的离线消息中、消息序列号大于所述目标会话内最大的消息序列号的离线消息,所述数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。
2.如权利要求1所述的方法,其特征在于,所述将目标离线消息推送给所述目标会话,包括:
从所述数据库中获取待发送离线消息集,所述待发送离线消息集中包括:与所述目标会话的会话标识相对应的、且消息序列号大于所述目标会话内最大的消息序列号的离线消息;
判断所述待发送离线消息集中各离线消息的消息序列号是否严格递增,如果不严格递增,生成空缺的消息序列号所对应的空消息,并将所述空消息添加至所述待发送离线消息集,所述空消息在客户端中不展示;
将所述待发送离线消息集推送给所述目标会话。
3.如权利要求1或2所述的方法,其特征在于,所述将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中,包括:
依据所述其他用户发送给所述目标用户的离线消息中的会话标识,查询所述数据库中是否存在与所述其他用户发送给所述目标用户的离线消息中的会话标识对应的子数据库;
若不存在,则创建所述子数据库,并为所述其他用户发送给所述目标用户的离线消息设置消息序列号;若存在,获取所述子数据库中存储的离线消息的最大的消息序列号,按照预设的递增策略,为所述其他用户发送给所述目标用户的离线消息设置递增消息序列号,所述递增消息序列号大于所述子数据库中存储的离线消息的最大的消息序列号。
4.如权利要求1或2所述的方法,其特征在于,所述分别向每个会话标识对应的会话推送预定数量的离线消息,包括:
获取预先设置的用于表征所述目标用户消息浏览顺序的浏览配置信息;
将所述数据库中与所述浏览配置信息相匹配的离线消息推送给每个会话标识对应的会话。
5.如权利要求1或2所述的方法,其特征在于,在所述将目标离线消息推送给所述目标会话之后,所述方法还包括:
确定所述目标用户获取完所述目标会话的会话标识对应的所有离线消息,或者,在接收到所述目标用户针对所述目标会话的离线消息终止请求,删除所述数据库中所述目标会话的会话标识对应的离线消息。
6.一种获取离线消息的装置,其特征在于,该装置包括:
离线消息存储模块,用于在检测到目标用户离线后,将其他用户发送给所述目标用户的离线消息按照会话标识存储在数据库中;
初始离线消息推送模块,用于在检测到所述目标用户上线后,分别向每个会话标识对应的会话推送预定数量的离线消息;
离线消息分段发送模块,用于在检测到所述目标用户对目标会话的离线消息请求时,所述离线消息请求中携带有所述目标会话的会话标识、所述目标会话内最大的消息序列号,将目标离线消息推送给所述目标会话,所述目标离线消息为所述数据库中所述目标会话的会话标识所对应的离线消息中、消息序列号大于所述目标会话内最大的消息序列号的离线消息,所述数据库中同一个会话标识对应的离线消息中早接收到的离线消息的序列号小于晚接收到的离线消息的序列号。
7.如权利要求6所述的装置,其特征在于,所述离线消息分段发送模块还用于:
从所述数据库中获取待发送离线消息集,所述待发送离线消息集中包括:与所述目标会话的会话标识相对应的、且消息序列号大于所述目标会话内最大的消息序列号的离线消息;
判断所述待发送离线消息集中各离线消息的消息序列号是否严格递增,如果不严格递增,生成空缺的消息序列号所对应的空消息,并将所述空消息添加至所述待发送离线消息集,所述空消息在客户端中不展示;
将所述待发送离线消息集推送给所述目标会话。
8.如权利要求6或7所述的装置,其特征在于,还包括:
数据库更新模块,用于确定所述目标用户获取完所述目标会话的会话标识对应的所有离线消息,或者,在接收到所述目标用户针对所述目标会话的离线消息终止请求,删除所述数据库中所述目标会话的会话标识对应的离线消息。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行所述权利要求1至5任一项所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521142.7A CN109639564A (zh) | 2018-12-12 | 2018-12-12 | 一种获取离线消息的方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521142.7A CN109639564A (zh) | 2018-12-12 | 2018-12-12 | 一种获取离线消息的方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109639564A true CN109639564A (zh) | 2019-04-16 |
Family
ID=66073362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811521142.7A Pending CN109639564A (zh) | 2018-12-12 | 2018-12-12 | 一种获取离线消息的方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109639564A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166346A (zh) * | 2019-04-25 | 2019-08-23 | 苏宁云计算有限公司 | 一种聊天消息的显示方法及设备 |
CN110266582A (zh) * | 2019-05-29 | 2019-09-20 | 深圳市梦网科技发展有限公司 | 一种消息推送方法、系统、服务器及通信终端 |
CN110391974A (zh) * | 2019-08-01 | 2019-10-29 | 北京云中融信网络科技有限公司 | 一种消息同步方法、服务端、终端及系统 |
CN110932966A (zh) * | 2019-12-09 | 2020-03-27 | 网易(杭州)网络有限公司 | 消息处理方法及装置、计算机存储介质、电子设备 |
CN111262920A (zh) * | 2020-01-13 | 2020-06-09 | 深圳市鸿合创新信息技术有限责任公司 | 一种数据同步方法及交互式电子白板、服务器 |
CN111614549A (zh) * | 2020-05-21 | 2020-09-01 | 腾讯科技(深圳)有限公司 | 交互处理方法、装置、计算机设备及存储介质 |
CN111782829A (zh) * | 2020-05-21 | 2020-10-16 | 香港乐蜜有限公司 | 一种即时通讯会话消息的处理方法、装置及电子设备 |
CN112153037A (zh) * | 2020-09-18 | 2020-12-29 | 北京浪潮数据技术有限公司 | 一种rest请求响应方法、装置、设备及介质 |
CN112217712A (zh) * | 2020-09-24 | 2021-01-12 | 福建天泉教育科技有限公司 | 消息多端同步的方法、客户端 |
CN112311656A (zh) * | 2020-02-14 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 消息聚合、展示方法、装置、电子设备和计算机可读介质 |
CN112333080A (zh) * | 2020-10-27 | 2021-02-05 | 合肥市智享亿云信息科技有限公司 | 一种即时通讯离线消息推送方法 |
CN112416598A (zh) * | 2020-12-01 | 2021-02-26 | 网易(杭州)网络有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN113242172A (zh) * | 2021-04-26 | 2021-08-10 | 福建天泉教育科技有限公司 | 一种消息的应答方法及系统 |
CN115002137A (zh) * | 2022-08-03 | 2022-09-02 | 广州此声网络科技有限公司 | 离线消息处理方法、装置、计算机设备和存储介质 |
CN115174507A (zh) * | 2021-04-02 | 2022-10-11 | 北京字跳网络技术有限公司 | 即时通信离线消息处理方法、客户端和服务器 |
CN115314457A (zh) * | 2022-08-09 | 2022-11-08 | 湖南快乐阳光互动娱乐传媒有限公司 | 离线消息处理方法及装置 |
CN115412519A (zh) * | 2022-08-29 | 2022-11-29 | 中国建设银行股份有限公司 | 消息传输方法、装置、服务器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN105227428A (zh) * | 2014-06-11 | 2016-01-06 | 中兴通讯股份有限公司 | 未读消息的处理方法、装置及系统 |
CN106161189A (zh) * | 2015-04-02 | 2016-11-23 | 北大方正集团有限公司 | 即时通信的离线通信方法及装置 |
-
2018
- 2018-12-12 CN CN201811521142.7A patent/CN109639564A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN105227428A (zh) * | 2014-06-11 | 2016-01-06 | 中兴通讯股份有限公司 | 未读消息的处理方法、装置及系统 |
CN106161189A (zh) * | 2015-04-02 | 2016-11-23 | 北大方正集团有限公司 | 即时通信的离线通信方法及装置 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166346A (zh) * | 2019-04-25 | 2019-08-23 | 苏宁云计算有限公司 | 一种聊天消息的显示方法及设备 |
CN110266582A (zh) * | 2019-05-29 | 2019-09-20 | 深圳市梦网科技发展有限公司 | 一种消息推送方法、系统、服务器及通信终端 |
CN110391974A (zh) * | 2019-08-01 | 2019-10-29 | 北京云中融信网络科技有限公司 | 一种消息同步方法、服务端、终端及系统 |
CN110932966A (zh) * | 2019-12-09 | 2020-03-27 | 网易(杭州)网络有限公司 | 消息处理方法及装置、计算机存储介质、电子设备 |
CN111262920A (zh) * | 2020-01-13 | 2020-06-09 | 深圳市鸿合创新信息技术有限责任公司 | 一种数据同步方法及交互式电子白板、服务器 |
CN112311656A (zh) * | 2020-02-14 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 消息聚合、展示方法、装置、电子设备和计算机可读介质 |
CN111614549A (zh) * | 2020-05-21 | 2020-09-01 | 腾讯科技(深圳)有限公司 | 交互处理方法、装置、计算机设备及存储介质 |
CN111782829A (zh) * | 2020-05-21 | 2020-10-16 | 香港乐蜜有限公司 | 一种即时通讯会话消息的处理方法、装置及电子设备 |
CN112153037A (zh) * | 2020-09-18 | 2020-12-29 | 北京浪潮数据技术有限公司 | 一种rest请求响应方法、装置、设备及介质 |
CN112153037B (zh) * | 2020-09-18 | 2023-07-14 | 北京浪潮数据技术有限公司 | 一种rest请求响应方法、装置、设备及介质 |
CN112217712A (zh) * | 2020-09-24 | 2021-01-12 | 福建天泉教育科技有限公司 | 消息多端同步的方法、客户端 |
CN112333080A (zh) * | 2020-10-27 | 2021-02-05 | 合肥市智享亿云信息科技有限公司 | 一种即时通讯离线消息推送方法 |
CN112416598A (zh) * | 2020-12-01 | 2021-02-26 | 网易(杭州)网络有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN112416598B (zh) * | 2020-12-01 | 2023-07-25 | 网易(杭州)网络有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN115174507B (zh) * | 2021-04-02 | 2023-10-27 | 北京字跳网络技术有限公司 | 即时通信离线消息处理方法、客户端和服务器 |
CN115174507A (zh) * | 2021-04-02 | 2022-10-11 | 北京字跳网络技术有限公司 | 即时通信离线消息处理方法、客户端和服务器 |
CN113242172A (zh) * | 2021-04-26 | 2021-08-10 | 福建天泉教育科技有限公司 | 一种消息的应答方法及系统 |
CN113242172B (zh) * | 2021-04-26 | 2023-02-28 | 福建天泉教育科技有限公司 | 一种消息的应答方法及系统 |
CN115002137B (zh) * | 2022-08-03 | 2022-10-21 | 广州此声网络科技有限公司 | 离线消息处理方法、装置、计算机设备和存储介质 |
CN115002137A (zh) * | 2022-08-03 | 2022-09-02 | 广州此声网络科技有限公司 | 离线消息处理方法、装置、计算机设备和存储介质 |
CN115314457A (zh) * | 2022-08-09 | 2022-11-08 | 湖南快乐阳光互动娱乐传媒有限公司 | 离线消息处理方法及装置 |
CN115314457B (zh) * | 2022-08-09 | 2024-04-19 | 湖南快乐阳光互动娱乐传媒有限公司 | 离线消息处理方法及装置 |
CN115412519A (zh) * | 2022-08-29 | 2022-11-29 | 中国建设银行股份有限公司 | 消息传输方法、装置、服务器及存储介质 |
CN115412519B (zh) * | 2022-08-29 | 2024-05-03 | 中国建设银行股份有限公司 | 消息传输方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109639564A (zh) | 一种获取离线消息的方法、装置及计算机可读存储介质 | |
CN106716417B (zh) | 一种信息查看的方法、装置和设备 | |
US20150281142A1 (en) | Hot Topic Pushing Method and Apparatus | |
CN104253788B (zh) | 一种数据处理方法、客户端、页面引擎及系统 | |
CN104052655A (zh) | 一种群聊方法以及即时通信客户端 | |
CN109688042A (zh) | 一种消息处理方法及装置 | |
CN106126395B (zh) | 一种云平台监控方法及系统 | |
CN107797717B (zh) | 推送方法、显示方法、客户端设备和数据处理系统 | |
CN111314204B (zh) | 一种互动方法、装置、终端和存储介质 | |
CN103346952B (zh) | 一种加入群组的方法及装置 | |
JP2018528497A (ja) | モバイルゲームのためのデータ処理方法および装置 | |
CN104468852A (zh) | 客户端选择ip链接地址的方法、装置及系统 | |
CN111246257A (zh) | 视频推荐方法、装置、设备及存储介质 | |
CN109302340A (zh) | 一种埋点数据上报方法、装置及计算机可读存储介质 | |
US20220030037A1 (en) | Session data processing method and apparatus, user terminal, and storage medium | |
US20140157290A1 (en) | Method, system, and device for switching between network applications, and computer storage medium | |
US11334240B2 (en) | Method, device, electronic device, and storage medium for sending and receiving message | |
CN106375324B (zh) | 一种基于tcp/ip通信协议的网络通信系统及方法 | |
CN116361584A (zh) | 页面数据的处理方法、装置、计算机设备及存储介质 | |
CN102707897A (zh) | 即时通信中路径触发联系人对象的方法、客户端及系统 | |
CN114390239B (zh) | 通信方法、装置、系统、电子设备以及存储介质 | |
CN108989244A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN106911551B (zh) | 一种标识图片的处理方法和设备 | |
CN112770415B (zh) | 关于无线热点的信息处理方法和装置 | |
CN112752323B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190416 |
|
RJ01 | Rejection of invention patent application after publication |