CN114422466A - 离线消息处理方法、装置、电子设备及存储介质 - Google Patents
离线消息处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114422466A CN114422466A CN202210068145.XA CN202210068145A CN114422466A CN 114422466 A CN114422466 A CN 114422466A CN 202210068145 A CN202210068145 A CN 202210068145A CN 114422466 A CN114422466 A CN 114422466A
- Authority
- CN
- China
- Prior art keywords
- message
- offline
- client
- target account
- thread
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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]
- 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
技术领域
本申请属于即时通讯技术领域,尤其涉及一种离线消息处理方法、离线消息处理装置、电子设备及计算机可读存储介质。
背景技术
用户在离线之后,大量好友发送给用户的离线消息会堆积在服务器。当用户上线后,服务器会将堆积的离线消息全部推送给用户,导致用户需要在短时间接收并处理大量的离线消息,这可能造成用户所登录的客户端出现卡顿的情况。
发明内容
本申请提供了一种离线消息处理方法、离线消息处理装置、电子设备及计算机可读存储介质,可在客户端存在大量离线消息时,减少出现处理卡顿的情况。
第一方面,本申请提供了一种离线消息处理方法,应用于客户端,包括:
在检测到目标账户登录后,若接收到服务器发送的针对上述目标账户的离线消息,则开启子线程,控制上述子线程对上述离线消息进行处理;
在上述子线程处理完毕所有上述离线消息后,控制上述目标账户的会话列表更新显示已处理的上述离线消息。
可选地,上述控制上述子线程对上述离线消息进行处理,包括:
控制上述子线程将上述离线消息存入离线消息集合;
在接收到上述服务器发送的结束消息后,控制上述子线程将上述离线消息集合中所存储的所有上述离线消息依次存入消息数据库。
可选地,上述离线消息集合建立于上述客户端的内存空间,上述消息数据库建立于上述客户端的本地存储空间。
可选地,上述控制上述目标账户的会话列表更新显示已处理的上述离线消息,包括:
当检测到上述会话列表进入前台运行状态时,控制上述会话列表访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息;
当检测到上述会话列表已处于上述前台运行状态时,若检测到上述会话列表接收到上述子线程发送的通知消息,则控制上述会话列表基于上述通知消息访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息。
可选地,上述基于上述消息数据库更新显示已处理的上述离线消息,包括:
控制上述会话列表读取上述消息数据库中所存储的离线消息的消息数量;
基于上述离线消息的消息数量,在上述会话列表显示对应的离线消息提醒图标。
第二方面,本申请提供了一种离线消息处理方法,应用于服务器,包括:
在目标账户的离线状态下,接收并存储上述目标账户的离线消息;
当检测到上述目标账户通过客户端登录后,向上述客户端发送上述离线消息;
在上述离线消息发送完毕后,向上述客户端发送结束消息,上述结束消息用于指示上述目标账户本次的离线消息已发送完毕。
第三方面,本申请提供了一种离线消息处理装置,应用于客户端,包括:
子线程控制模块,用于在检测到目标账户登录后,若接收到服务器发送的针对上述目标账户的离线消息,则开启子线程,控制上述子线程对上述离线消息进行处理;
会话列表控制模块,用于在上述子线程处理完毕所有上述离线消息后,控制上述目标账户的会话列表更新显示已处理的上述离线消息。
可选地,上述子线程控制模块,包括:
第一存储单元,用于控制上述子线程将上述离线消息存入离线消息集合;
第二存储单元,用于在接收到上述服务器发送的结束消息后,控制上述子线程将上述离线消息集合中所存储的所有上述离线消息依次存入消息数据库。
可选地,上述离线消息集合建立于上述客户端的内存空间,上述消息数据库建立于上述客户端的本地存储空间。
可选地,上述会话列表控制模块,包括:
访问控制单元,用于当检测到上述会话列表进入前台运行状态时,控制上述会话列表访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息;当检测到上述会话列表已处于上述前台运行状态时,若检测到上述会话列表接收到上述子线程发送的通知消息,则控制上述会话列表基于上述通知消息访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息。
可选地,上述访问控制单元在控制上述会话列表基于上述通知消息访问上述消息数据库后,具体用于控制上述会话列表读取上述消息数据库中所存储的离线消息的消息数量,并基于上述离线消息的消息数量,在上述会话列表显示对应的离线消息提醒图标。
第四方面,本申请提供了一种离线消息处理装置,应用于服务器,包括:
存储模块,用于在目标账户的离线状态下,接收并存储上述目标账户的离线消息;
第一发送模块,用于当检测到上述目标账户通过客户端登录后,向上述客户端发送上述离线消息;
第二发送模块,用于在上述离线消息发送完毕后,向上述客户端发送结束消息,上述结束消息用于指示上述目标账户本次的离线消息已发送完毕。
第五方面,本申请提供了一种电子设备,上述电子设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤;或者上述处理器执行上述计算机程序时实现如上述第二方面的方法的步骤。
第六方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤;或者,上述计算机程序被处理器执行时实现如上述第二方面的方法的步骤。
第七方面,本申请提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤;或者,上述计算机程序被一个或多个处理器执行时实现如上述第二方面的方法的步骤。
本申请与现有技术相比存在的有益效果是:客户端将对离线消息的处理与对在线消息的处理分割开来。具体地,客户端在存在有离线消息待处理时,会开启一个子线程,由该子线程进行对离线消息的一系列的处理操作;而对在线消息来说,客户端不对其处理方式作出更改,仍使用主线程进行在线消息的处理。上述过程使得离线消息及在线消息分由不同的线程进行处理操作,可在客户端存在大量离线消息时,减少出现处理卡顿的情况。
可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的即时通讯系统的系统框架示意图;
图2是本申请实施例提供的一种离线消息处理方法的实现流程示意图;
图3是本申请实施例提供的另一种离线消息处理方法的实现流程示意图;
图4是本申请实施例提供的一种离线消息处理装置的结构框图;
图5是本申请实施例提供的另一种离线消息处理装置的结构框图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为便于理解本申请所提出的离线消息处理方法,下面先对即时通讯系统进行简单介绍:请参阅图1,图1给出了即时通讯系统的系统框架的简单示意。该即时通讯系统中,包括一个服务器及多个客户端(图1中仅示出3个)。每个客户端上均可登录一个用于即时通讯的用户账户。由图1可以看出,各个客户端之间并没有建立直接的通讯连接,而是通过服务器建立间接的通讯连接。也即,消息的发送均是由服务器进行中转的。
仅作为示例,下面对在线消息的传输处理进行简单描述:在线消息指的是在用户账户的在线状态下(也即用户账户已通过客户端登录的状态下),其它用户账户向该用户账户所发送的消息。假定客户端1登录的是用户1的用户账户,记作用户账户1;客户端2登录的是用户2的用户账户,记作用户账户2。可以理解的是,用户之间的消息传输,实际上是客户端之间的消息传输。在用户1想要向用户2发送多条消息时,上层进行的操作是用户账户1向用户账户2发送消息;而该操作的实际执行者为客户端,也即底层进行的操作是客户端1向客户端2发送消息,具体为:客户端1逐条将消息发送至服务器;服务器每接收到一条消息,就将该消息转发至客户端2;客户端2的主线程由此可逐条实时接收并处理这些在线消息。
仅作为示例,下面再对离线消息的传输处理进行简单描述:离线消息指的是在用户账户的离线状态下(也即用户账户未通过客户端登录的状态下),其它用户账户向该用户账户所发送的消息。例如,用户1在客户端1上登录了用户账户1,但用户2未在任一客户端上登录用户账户2。这导致用户账户1向用户账户2所发送的多条消息均只能先由服务器接收并存储,类似地,其它用户账户也可能在用户账户2未登录时向其发送了多条消息,这些消息即为用户账户2的离线消息。当用户2在客户端2上登录用户账户2时,服务器会向登录有用户账户2的客户端(也即客户端2)推送用户账户2当前在服务器上所存储的所有离线消息。现有技术中,客户端2处理离线消息的过程与处理在线消息的过程相同,也即由客户端2的主线程统一接收并处理这些离线消息。由于离线消息的数量不可控,在离线消息过多时,大量离线消息在短时间内被推送至客户端2,这就要求客户端2的主线程在短时间内迅速处理这些离线消息;且与此同时,在用户账户2已登录后,其它用户账户可能又会向用户账户2发送新的消息,也即在线消息,这就要求该主线程还要对可能的在线消息进行处理,从而导致消息处理出现卡顿的情况。基于此,本申请实施例提出了一种离线消息处理方法、离线消息处理装置、电子设备及计算机可读存储介质,可在客户端存在大量离线消息时,减少出现处理卡顿的情况。为了说明本申请实施例所提出的技术方案,下面通过具体实施例来进行说明。
下面对本申请实施例所提出的离线消息处理方法作出说明,该离线消息处理方法应用于客户端。请参阅图2,该离线消息处理方法包括:
步骤201,在检测到目标账户登录后,若接收到服务器发送的针对目标账户的离线消息,则开启子线程,控制子线程对离线消息进行处理。
如前文对即时通讯系统的介绍,在目标账户的离线状态下(也即未登录的状态下),该目标账户的好友账户可能向该目标账户发送了多条消息,这些消息即为目标账户的离线消息。可以理解,这些离线消息均被存储于服务器中。一旦服务器监测发现目标账户在客户端上登录,就会向客户端推送其离线消息。
客户端中运行有主线程。当客户端检测到目标账户登录后,该主线程即可接收服务器发送的各类消息。可以理解,虽然服务器会将所有离线消息均推送给客户端,但在微观上,各消息仍然是逐条进行推送的;也即在离线消息有多条时,客户端实际上是逐条接收到该离线消息的。
一旦客户端接收到服务器发送的针对该目标账户的离线消息,就可立即新建并启动一子线程。可以理解为,该子线程是专用于处理离线消息的线程。该子线程开启后,所有与目标账户的离线消息相关的处理操作均交由该子线程执行。可以理解,其它各项操作(也即与离线消息无关的操作)仍由主线程执行,也即主线程可以响应于用户向客户端所输入的任何指令,执行该指令所对应的操作;或者,该主线程也可在接收到在线消息时,对该在线消息进行处理。
步骤202,在子线程处理完毕所有离线消息后,控制目标账户的会话列表更新显示已处理的离线消息。
子线程可依照各条离线消息的接收顺序,对各条离线消息依次进行处理。在对所有离线消息处理完毕后,客户端可以控制该子线程发出一内部的通知消息。该通知消息的订阅者(也即接收方)为当前在该客户端上登录的目标账户的会话列表,可以理解,该通知消息能够用于指示该会话列表基于已处理的离线消息进行刷新。在该会话列表基于已处理的离线消息进行刷新后,该会话列表就可显示与该离线消息相关的内容。例如,该会话列表可以显示各条离线消息的摘要;或者,也可显示离线消息的数量。
由上可见,通过本申请实施例,客户端将对离线消息的处理与对在线消息的处理分割开来。具体地,客户端在存在有离线消息时,会开启一个子线程,由该子线程进行对离线消息的一系列的处理操作;而对在线消息来说,客户端不对其处理方式作出更改,仍使用主线程进行在线消息的处理。上述过程使得离线消息及在线消息分由不同的线程进行处理操作,可在客户端存在大量离线消息时,减少出现处理卡顿的情况。
在一些实施例中,为提升对离线消息处理的速度及可靠性,控制子线程对离线消息进行处理的过程具体可包括:先控制子线程将离线消息存入离线消息集合;在接收到服务器发送的结束消息后,再控制子线程将离线消息集合中所存储的所有离线消息依次存入消息数据库。
子线程将离线消息存入离线消息集合的操作以及存入消息数据库的操作实际上均为对离线消息的批量处理。可以理解,在进行批量处理时,处理顺序实际上是根据各离线消息的接收顺序而决定的。例如,假定客户端先接收了离线消息1,再接收了离线消息2,则客户端会先控制子线程将离线消息1存入离线消息集合,再控制子线程将离线消息2存入离线消息集合。这样一来,离线消息集合中,各离线消息的存入时间的顺序会与各离线消息的接收时间的顺序相同。类似地,子线程将离线消息集合中所存储的所有离线消息依次存入消息数据库时,仍会按照各离线消息的接收时间由早至晚的顺序(也即存入时间由早至晚的顺序),将该离线消息集合中的离线消息逐条转移至消息数据库中进行存储。
对于服务器来说,由于离线消息是在目标账户未登录时的会话消息,因而离线消息在服务器的接收时间(等同于在服务器的存储时间)必然会早于在线消息在服务器的接收时间。因而,服务器会先向客户端推送针对该目标账户的离线消息,在离线消息推送完毕后,才会开始推送针对该目标账户的在线消息。为了让客户端能够迅速区分当前该服务器所推送的消息是离线消息还是在线消息,服务器会在该目标账户的所有离线消息推送完毕后,向客户端推送一条结束消息,该结束消息可作为离线消息推送完毕的标识,帮助客户端迅速且有效的区分离线消息及在线消息。这样一来,对于客户端来说,其可认为,在接收到该结束消息前,所接收到的所有会话消息均为离线消息;在接收到该结束消息后,所接收到的所有会话消息均为在线消息。类似地,如果客户端在登录了目标账户后,在未接收到任何会话消息时就已接收到了该结束消息,则可确定该目标账户不存在任何离线消息。
离线消息集合可以建立于客户端的内存空间中,消息数据库可以建立于客户端的存储空间中。由于内存空间的数据读写通常速度很快,因而子线程可以在较短时间内迅速将各条离线消息存入离线消息集合中。由此,可以保障客户端在接收到结束消息时,各条离线消息已被存入离线消息集合,实现与在线消息的区分处理。需要注意的是,离线消息在存入消息数据库成功后,该离线消息就会在该离线消息集合中被删除,由此可使得所有离线消息转移存储成功后,该离线消息集合可在内存空间被释放,避免内存被过多占用。
在一些实施例中,对于客户端来说,其可能出现如下两种应用场景:
第一种应用场景,用户在客户端上登录用户账户(也即目标账户)后,在离线信息处理完毕前,就进入了会话列表的显示页面;也即,离线信息处理完毕时,会话列表已处于前台运行状态。
第二种应用场景,用户在客户端上登录用户账户(也即目标账户)后,在离线信息处理完毕后,才进入了会话列表的显示页面;也即,离线信息处理完毕时,会话列表还未处于前台运行状态。
可以理解,对于子线程所发出的通知消息而言,只有在会话列表处于前台运行状态(也即会话列表在前台显示)时,会话列表才能够接收到该通知消息,从而进行对应的刷新操作,实现其显示内容的更新;而在会话列表未处于前台运行状态时,该会话列表是无法接收到该通知消息的。也即,只有在第一种情况下,该通知消息才能真正起到通知会话列表进行刷新的作用。为了避免在第二种情况下,会话列表因错过通知消息而导致其未能及时刷新,本申请实施例为会话列表定义两种刷新时机:一种是在每次进入会话列表的显示页面,也即会话列表每次进入前台运行状态时;另一种是在会话列表接收到子线程发送的通知消息时。
由此可知,控制目标账户的会话列表更新显示已处理的离线消息的过程具体可包括:当检测到会话列表进入前台运行状态时,控制会话列表访问消息数据库,以基于消息数据库更新显示已处理的离线消息;当检测到会话列表已处于前台运行状态时,若检测到会话列表接收到子线程发送的通知消息,则控制会话列表基于通知消息访问消息数据库,以基于消息数据库更新显示已处理的离线消息。
这样一来,不管用户是何时打开会话列表,客户端都能够及时控制该会话列表访问消息数据库,实现对已处理的离线消息的更新显示。
在一些实施例中,以客户端控制会话列表显示离线消息的数量为例,其过程可以为:客户端可控制会话列表读取消息数据库中所存储的离线消息的消息数量,并基于该离线消息的消息数量,在会话列表显示对应的离线消息提醒图标,用以提醒用户本次共接收到几条离线消息。进一步地,该消息数据库中还可保存有各条离线消息的读取状态。这样一来,客户端即可控制会话列表读取消息数据库中所存储的各条离线消息的读取状态,并基于各条离线消息的读取状态,确定消息数据库中所存储的未读的离线消息的消息数量,由此可基于该未读的离线消息的消息数量,在会话列表显示对应的离线消息提醒图标,用以提醒用户当前还有几条未读的离线消息。
下面对本申请实施例所提出的离线消息处理方法作出说明,该离线消息处理方法应用于服务器。请参阅图3,该离线消息处理方法包括:
步骤301,在目标账户的离线状态下,接收并存储目标账户的离线消息。
如上一实施例所描述的,该离线消息指的是:目标账户在未登录的状态(也即离线状态)下,目标账户的好友账户向目标账户发送的消息。由于所有消息均需要通过服务器中转,因而这些离线消息实际上会先汇聚于服务器处,由服务器接收并统一进行存储。
步骤302,当检测到目标账户通过客户端登录后,向客户端发送离线消息。
服务器一旦检测到目标账户已通过一客户端进行了登录,也即检测到该目标账户由离线状态切换为了在线状态,就会向该客户端(登录有目标账户的客户端)推送该目标账户的所有离线消息。可以理解,实际推送时,各离线消息是基于各自的接收时间由早至晚的顺序进行的推送,在上一实施例已有描述,此处不再赘述。
步骤303,在离线消息发送完毕后,向客户端发送结束消息,结束消息用于指示目标账户本次的离线消息已发送完毕。
当该目标账户的所有离线消息均推送完毕后,服务器即可立即向客户端发送一结束消息。可以理解,对于服务器来说,即便有好友账户在目标账户登录后立即向其发送消息(也即在线消息),服务器也不会立即将这些在线消息推送给登录了目标账户的客户端,而是会等到向该客户端发送了结束消息后,才将这些在线消息推送给该客户端。也即,对于服务器来说,其严格遵循离线消息-结束消息-在线消息的推送顺序。
在一些示例中,如果目标账户不存在任何离线消息,则服务器在检测到该目标账户通过客户端登录后,可直接向该客户端发送该结束消息。这样一来,可使得客户端在登录了目标账户后,在未接收到任何会话消息时就接收到该结束消息,由此帮助该客户端立刻确认当前该目标账户不存在任何离线消息。
由上可见,通过本申请实施例,服务器可通过向客户端发送结束消息,来帮助客户端迅速及有效区分哪些为离线消息,哪些为在线消息,使得客户端能够针对离线消息及在线消息进行区分处理,避免出现消息处理卡顿的情况。
对应于上文所提供的应用于客户端的离线消息处理方法,本申请实施例还提供了一种应用于客户端的离线消息处理装置。如图4所示,该离线消息处理装置400包括:
子线程控制模块401,用于在检测到目标账户登录后,若接收到服务器发送的针对上述目标账户的离线消息,则开启子线程,控制上述子线程对上述离线消息进行处理;
会话列表控制模块402,用于在上述子线程处理完毕所有上述离线消息后,控制上述目标账户的会话列表更新显示已处理的上述离线消息。
可选地,上述子线程控制模块401,包括:
第一存储单元,用于控制上述子线程将上述离线消息存入离线消息集合;
第二存储单元,用于在接收到上述服务器发送的结束消息后,控制上述子线程将上述离线消息集合中所存储的所有上述离线消息依次存入消息数据库。
可选地,上述离线消息集合建立于上述客户端的内存空间,上述消息数据库建立于上述客户端的本地存储空间。
可选地,上述会话列表控制模块402,包括:
访问控制单元,用于当检测到上述会话列表进入前台运行状态时,控制上述会话列表访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息;当检测到上述会话列表已处于上述前台运行状态时,若检测到上述会话列表接收到上述子线程发送的通知消息,则控制上述会话列表基于上述通知消息访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息。
可选地,上述访问控制单元在控制上述会话列表基于上述通知消息访问上述消息数据库后,具体用于控制上述会话列表读取上述消息数据库中所存储的离线消息的消息数量,并基于上述离线消息的消息数量,在上述会话列表显示对应的离线消息提醒图标。
由上可见,通过本申请实施例,客户端将对离线消息的处理与对在线消息的处理分割开来。具体地,客户端在存在有离线消息时,会开启一个子线程,由该子线程进行对离线消息的一系列的处理操作;而对在线消息来说,客户端不对其处理方式作出更改,仍使用主线程进行在线消息的处理。上述过程使得离线消息及在线消息分由不同的线程进行处理操作,可在客户端存在大量离线消息时,减少出现处理卡顿的情况。
对应于上文所提供的应用于服务器的离线消息处理方法,本申请实施例还提供了一种应用于服务器的离线消息处理装置。如图5所示,该离线消息处理装置500包括:
存储模块501,用于在目标账户的离线状态下,接收并存储上述目标账户的离线消息;
第一发送模块502,用于当检测到上述目标账户通过客户端登录后,向上述客户端发送上述离线消息;
第二发送模块503,用于在上述离线消息发送完毕后,向上述客户端发送结束消息,上述结束消息用于指示上述目标账户本次的离线消息已发送完毕。
由上可见,通过本申请实施例,服务器可通过向客户端发送结束消息,来帮助客户端迅速及有效区分哪些为离线消息,哪些为在线消息,使得客户端能够针对离线消息及在线消息进行区分处理,避免出现消息处理卡顿的情况。
对应于上文所提供的离线消息处理方法,本申请实施例还提供了一种电子设备。请参阅图6,本申请实施例中的电子设备6包括:存储器601,一个或多个处理器602(图6中仅示出一个)及存储在存储器601上并可在处理器602上运行的计算机程序。其中:存储器601用于存储软件程序以及单元,处理器602通过运行存储在存储器601的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取预设事件对应的资源。
具体地,当电子设备为客户端时,处理器602通过运行存储在存储器601的上述计算机程序时实现以下步骤:
在检测到目标账户登录后,若接收到服务器发送的针对上述目标账户的离线消息,则开启子线程,控制上述子线程对上述离线消息进行处理;
在上述子线程处理完毕所有上述离线消息后,控制上述目标账户的会话列表更新显示已处理的上述离线消息。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述控制上述子线程对上述离线消息进行处理,包括:
控制上述子线程将上述离线消息存入离线消息集合;
在接收到上述服务器发送的结束消息后,控制上述子线程将上述离线消息集合中所存储的所有上述离线消息依次存入消息数据库。
在上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述离线消息集合建立于上述客户端的内存空间,上述消息数据库建立于上述客户端的本地存储空间。
在上述第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,上述控制上述目标账户的会话列表更新显示已处理的上述离线消息,包括:
当检测到上述会话列表进入前台运行状态时,控制上述会话列表访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息;
当检测到上述会话列表已处于上述前台运行状态时,若检测到上述会话列表接收到上述子线程发送的通知消息,则控制上述会话列表基于上述通知消息访问上述消息数据库,以基于上述消息数据库更新显示已处理的上述离线消息。
在上述四种可能的实施方式作为基础而提供的第五种可能的实施方式中,上述基于上述消息数据库更新显示已处理的上述离线消息,包括:
控制上述会话列表读取上述消息数据库中所存储的离线消息的消息数量;
基于上述离线消息的消息数量,在上述会话列表显示对应的离线消息提醒图标。
具体地,当电子设备为服务器时,处理器602通过运行存储在存储器601的上述计算机程序时实现以下步骤:
在目标账户的离线状态下,接收并存储上述目标账户的离线消息;
当检测到上述目标账户通过客户端登录后,向上述客户端发送上述离线消息;
在上述离线消息发送完毕后,向上述客户端发送结束消息,上述结束消息用于指示上述目标账户本次的离线消息已发送完毕。
应当理解,在本申请实施例中,所称处理器602可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器,或者也可以是任何常规的处理器等。
存储器601可以包括只读存储器和随机存取存储器,并向处理器602提供指令和数据。存储器601的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器601还可以存储设备类别的信息。
由上可见,通过本申请实施例,对于客户端来说,客户端将对离线消息的处理与对在线消息的处理分割开来。具体地,客户端在存在有离线消息时,会开启一个子线程,由该子线程进行对离线消息的一系列的处理操作;而对在线消息来说,客户端不对其处理方式作出更改,仍使用主线程进行在线消息的处理。上述过程使得离线消息及在线消息分由不同的线程进行处理操作,可在客户端存在大量离线消息时,减少出现处理卡顿的情况。对于服务器来说,服务器可通过向客户端发送结束消息,来帮助客户端迅速及有效区分哪些为离线消息,哪些为在线消息,使得客户端能够针对离线消息及在线消息进行区分处理,避免出现消息处理卡顿的情况。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种离线消息处理方法,其特征在于,应用于客户端,包括:
在检测到目标账户登录后,若接收到服务器发送的针对所述目标账户的离线消息,则开启子线程,控制所述子线程对所述离线消息进行处理;
在所述子线程处理完毕所有所述离线消息后,控制所述目标账户的会话列表更新显示已处理的所述离线消息。
2.如权利要求1所述的离线消息处理方法,其特征在于,所述控制所述子线程对所述离线消息进行处理,包括:
控制所述子线程将所述离线消息存入离线消息集合;
在接收到所述服务器发送的结束消息后,控制所述子线程将所述离线消息集合中所存储的所有所述离线消息依次存入消息数据库。
3.如权利要求2所述的离线消息处理方法,其特征在于,所述离线消息集合建立于所述客户端的内存空间,所述消息数据库建立于所述客户端的本地存储空间。
4.如权利要求2所述的离线消息处理方法,其特征在于,所述控制所述目标账户的会话列表更新显示已处理的所述离线消息,包括:
当检测到所述会话列表进入前台运行状态时,控制所述会话列表访问所述消息数据库,以基于所述消息数据库更新显示已处理的所述离线消息;
当检测到所述会话列表已处于所述前台运行状态时,若检测到所述会话列表接收到所述子线程发送的通知消息,则控制所述会话列表基于所述通知消息访问所述消息数据库,以基于所述消息数据库更新显示已处理的所述离线消息。
5.如权利要求4所述的离线消息处理方法,其特征在于,所述基于所述消息数据库更新显示已处理的所述离线消息,包括:
控制所述会话列表读取所述消息数据库中所存储的离线消息的消息数量;
基于所述离线消息的消息数量,在所述会话列表显示对应的离线消息提醒图标。
6.一种离线消息处理方法,其特征在于,应用于服务器,包括:
在目标账户的离线状态下,接收并存储所述目标账户的离线消息;
当检测到所述目标账户通过客户端登录后,向所述客户端发送所述离线消息;
在所述离线消息发送完毕后,向所述客户端发送结束消息,所述结束消息用于指示所述目标账户本次的离线消息已发送完毕。
7.一种离线消息处理装置,其特征在于,应用于客户端,包括:
子线程控制模块,用于在检测到目标账户登录后,若接收到服务器发送的针对所述目标账户的离线消息,则开启子线程,控制所述子线程对所述离线消息进行处理;
会话列表控制模块,用于在所述子线程处理完毕所有所述离线消息后,控制所述目标账户的会话列表更新显示已处理的所述离线消息。
8.一种离线消息处理装置,其特征在于,应用于服务器,包括:
存储模块,用于在目标账户的离线状态下,接收并存储所述目标账户的离线消息;
第一发送模块,用于当检测到所述目标账户通过客户端登录后,向所述客户端发送所述离线消息;
第二发送模块,用于在所述离线消息发送完毕后,向所述客户端发送结束消息,所述结束消息用于指示所述目标账户本次的离线消息已发送完毕。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述电子设备执行所述计算机程序时实现如权利要求1至6任一项所述的方法;或者,所述电子设备执行所述计算机程序时实现如权利要求7所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法;或者,所述计算机程序被处理器执行时实现如权利要求7所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068145.XA CN114422466B (zh) | 2022-01-20 | 离线消息处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068145.XA CN114422466B (zh) | 2022-01-20 | 离线消息处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114422466A true CN114422466A (zh) | 2022-04-29 |
CN114422466B CN114422466B (zh) | 2024-06-07 |
Family
ID=
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794723A (zh) * | 2005-10-11 | 2006-06-28 | 华为技术有限公司 | 一种离线消息处理方法 |
CN101068222A (zh) * | 2007-01-15 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 一种处理消息的方法及装置 |
CN101808048A (zh) * | 2010-03-10 | 2010-08-18 | 杭州乐港科技有限公司 | Web即时通讯方法 |
US20120198004A1 (en) * | 2011-02-02 | 2012-08-02 | Imvu, Inc. | System and method for managing multiple queues of non-persistent messages in a networked environment |
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN107391274A (zh) * | 2017-06-29 | 2017-11-24 | 武汉斗鱼网络科技有限公司 | 离线消息的处理方法及装置 |
CN112416598A (zh) * | 2020-12-01 | 2021-02-26 | 网易(杭州)网络有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN112737928A (zh) * | 2021-01-08 | 2021-04-30 | 金现代信息产业股份有限公司 | 即时通讯消息发送方法及装置 |
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794723A (zh) * | 2005-10-11 | 2006-06-28 | 华为技术有限公司 | 一种离线消息处理方法 |
CN101068222A (zh) * | 2007-01-15 | 2007-11-07 | 腾讯科技(深圳)有限公司 | 一种处理消息的方法及装置 |
CN101808048A (zh) * | 2010-03-10 | 2010-08-18 | 杭州乐港科技有限公司 | Web即时通讯方法 |
US20120198004A1 (en) * | 2011-02-02 | 2012-08-02 | Imvu, Inc. | System and method for managing multiple queues of non-persistent messages in a networked environment |
CN103051520A (zh) * | 2013-01-05 | 2013-04-17 | 北京小米科技有限责任公司 | 即时通信工具中同步离线会话消息的方法及装置 |
CN107391274A (zh) * | 2017-06-29 | 2017-11-24 | 武汉斗鱼网络科技有限公司 | 离线消息的处理方法及装置 |
CN112416598A (zh) * | 2020-12-01 | 2021-02-26 | 网易(杭州)网络有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN112737928A (zh) * | 2021-01-08 | 2021-04-30 | 金现代信息产业股份有限公司 | 即时通讯消息发送方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3567476B1 (en) | Application data processing method and apparatus, and storage medium | |
EP4087258A1 (en) | Method and apparatus for displaying live broadcast data, and device and storage medium | |
US11703999B2 (en) | Changing visual aspects of a graphical user interface to bring focus to a message | |
US10744409B2 (en) | Method, apparatus, and storage medium for displaying game data on a desktop of a mobile terminal | |
US8819560B2 (en) | Dispatching events to multiple browser windows/tabs using a single connection | |
CN110333947B (zh) | 一种游戏应用的分包资源加载方法、装置、设备及介质 | |
US20070168529A1 (en) | Contact list display system and method | |
CN103370917B (zh) | 消息处理方法及服务器 | |
US20180270177A1 (en) | Message sending method, device, and system | |
CN111130986B (zh) | 消息发送方法、装置、设备及存储介质 | |
US9384067B2 (en) | Managing a virtual object | |
CN115004673A (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
WO2020231568A1 (en) | Connected [i.e. linked] accounts of a user keeps signed state in alive of other connected [i.e. linked] accounts | |
US20220245734A1 (en) | Interactive method and device on social media accounts | |
CN112838980B (zh) | 一种消息处理方法、系统、装置、电子设备及存储介质 | |
US8909718B2 (en) | Methods and systems for incorporating a third user into an instant message session | |
WO2021226781A1 (zh) | 防火墙规则的更新方法、装置、服务器及存储介质 | |
CN114422466A (zh) | 离线消息处理方法、装置、电子设备及存储介质 | |
CN106550021B (zh) | 推送消息的推送方法及装置 | |
US11044359B2 (en) | Suppressing indications of events in user interfaces | |
CN111194540A (zh) | 多主题对话的通信控制装置和方法、及计算机处理设备 | |
EP3687133B1 (en) | System and method for synchronization of media objects between devices operating in a multiroom system | |
CN114422466B (zh) | 离线消息处理方法、装置、电子设备及存储介质 | |
CN107729136B (zh) | 一种基于fpga的处理优先级配置方法及装置 | |
CN113014404B (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 |