CN109818851A - 一种消息持久化方法、装置及电子设备 - Google Patents

一种消息持久化方法、装置及电子设备 Download PDF

Info

Publication number
CN109818851A
CN109818851A CN201910063653.7A CN201910063653A CN109818851A CN 109818851 A CN109818851 A CN 109818851A CN 201910063653 A CN201910063653 A CN 201910063653A CN 109818851 A CN109818851 A CN 109818851A
Authority
CN
China
Prior art keywords
message
session
vernier
read
queue
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
Application number
CN201910063653.7A
Other languages
English (en)
Inventor
黄皎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910063653.7A priority Critical patent/CN109818851A/zh
Publication of CN109818851A publication Critical patent/CN109818851A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种消息持久化方法、装置及电子设备,应用于多媒体技术领域,所述方法包括:在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳;建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;消息队列包含会话在已读消息时间戳之前的所有消息;在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,判断会话是否更新;若确定会话更新,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。本发明可以在提高读取效率的同时节省存储空间。

Description

一种消息持久化方法、装置及电子设备
技术领域
本发明涉及多媒体技术领域,特别是涉及一种消息持久化方法、装置及电子设备。
背景技术
IM(Instant messaging,即时通信)系统是一个实时通信系统,允许两人或多人使用网络实时地传递文字消息、文件、语音与视频交流。IM系统为了保证消息的可靠性,需要进行消息的持久化操作,即将消息存储在存储介质中,以便进行消息的查询重发等功能。
现有技术中,IM消息持久化方法包括:扩散读和扩散写。扩散读是针对每个会话,消息只存储一份,若用户在多个会话中,用户在读取未读消息时需要查询所有的会话,即扩散地读。扩散写是针对每个会话,将新消息存入会话内所有用户的消息队列之中,消息存储多份,即扩散地写。
然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:对于扩散读,虽然消息只存储一份,节省存储空间,但是在用户读取未读消息时需要查询用户所在的所有的会话,导致读取效率较低。对于扩散写,虽然用户读取未读消息时只需读取一次,读取效率较高,但是消息需要存储多份,浪费存储空间。
发明内容
本发明实施例的目的在于提供一种消息持久化方法、装置及电子设备,以提高读取效率的同时节省存储空间。具体技术方案如下:
本发明实施例提供了一种消息持久化方法,所述方法包括:
在检测到用户离线时,获取所述用户的会话,根据所述会话中消息的时间戳,建立所述会话对应的已读消息时间戳;
建立所述会话的消息队列,对所述会话的消息队列设置第一游标和第二游标;其中,所述消息队列包含所述会话在所述已读消息时间戳之前的所有消息,所述第一游标表示所述会话的消息队列中所述用户已读取的最后一条消息结束的位置,所述第二游标表示所述会话的消息队列中未读取的最后一条消息结束的位置;
在检测到所述用户上线后,根据所述已读消息时间戳以及当前时刻所述会话的时间戳,判断所述会话是否更新;
若确定所述会话更新,将所述会话中更新的消息添加至所述会话的消息队列中,并对所述第二游标进行更新,在确定所述用户读取所述会话的消息队列中位于所述第一游标和所述第二游标之间的消息之后,将所述已读消息时间戳更新为当前时刻。
可选的,所述根据所述会话中消息的时间戳,建立所述会话对应的已读消息时间戳,包括:
获取所述会话中最后一条消息的时间戳,将最后一条消息的时间戳作为所述会话对应的已读消息时间戳。
可选的,所述对所述会话的消息队列设置第一游标,包括:
将所述已读消息时间戳的消息所在位置确定为所述会话的消息队列的第一游标。
可选的,所述对所述第二游标进行更新,包括:
将第二游标更新为所述会话的已更新消息队列中最后一条消息结束的位置。
可选的,所述根据所述已读消息时间戳以及当前时刻所述会话的时间戳,确定所述会话是否更新,包括:
若判断所述已读消息时间戳和当前时刻所述会话的时间戳不同,确定所述会话更新,否则,确定所述会话未更新。
本发明实施例提供了一种消息持久化装置,所述装置包括:
时间戳建立模块,用于在检测到用户离线时,获取所述用户的会话,根据所述会话中消息的时间戳,建立所述会话对应的已读消息时间戳;
游标设置模块,用于建立所述会话的消息队列,对所述会话的消息队列设置第一游标和第二游标;其中,所述消息队列包含所述会话在所述已读消息时间戳之前的所有消息,所述第一游标表示所述会话的消息队列中所述用户已读取的最后一条消息结束的位置,所述第二游标表示所述会话的消息队列中未读取的最后一条消息结束的位置;
判断模块,用于在检测到所述用户上线后,根据所述已读消息时间戳以及当前时刻所述会话的时间戳,判断所述会话是否更新;
更新模块,用于在所述判断模块的判断结果为是时,将所述会话中更新的消息添加至所述会话的消息队列中,并对所述第二游标进行更新,在确定所述用户读取所述会话的消息队列中位于所述第一游标和所述第二游标之间的消息之后,将所述已读消息时间戳更新为当前时刻。
可选的,所述时间戳建立模块,具体用于获取所述会话中最后一条消息的时间戳,将最后一条消息的时间戳作为所述会话对应的已读消息时间戳。
可选的,所述游标设置模块,包括:
第一游标设置子模块,用于将所述已读消息时间戳的消息所在位置确定为所述会话的消息队列的第一游标。
可选的,所述更新模块,包括:
第二游标更新子模块,用于将第二游标更新为所述会话的已更新消息队列中最后一条消息结束的位置。
可选的,所述判断模块,具体用于若判断所述已读消息时间戳和当前时刻所述会话的时间戳不同,确定所述会话更新,否则,确定所述会话未更新。
本发明实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的消息持久化方法的步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的消息持久化方法的步骤。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的消息持久化方法的步骤。
本发明实施例提供的消息持久化方法、装置及电子设备,在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳;建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;消息队列包含会话在已读消息时间戳之前的所有消息,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置;在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,确定会话是否更新;若确定会话更新,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。本发明实施例中,由于所有消息只存储一份,因此节省了存储空间,并且,基于队列的会话消息,支持多个用户读取,基于已读消息时间戳的会话,可以使用户高效地读取未读消息。可见,本发明提高读取效率的同时节省了存储空间。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例的消息持久化方法的一种流程图;
图2为本发明实施例的消息队列中第一游标和第二游标的位置图;
图3为本发明实施例的会话中已读消息时间戳和当前时刻会话的时间戳的位置图;
图4为本发明实施例的消息持久化装置的一种结构图;
图5为本发明实施例的电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
在IM系统中,用户读取会话消息时,或因为消息存储多份浪费存储空间,或因为读取用户所在的多个会话导致读取性能较低,为了解决该问题,本发明实施例提供了一种消息持久化方法、装置及电子设备,以提高读取效率的同时节省存储空间。
下面首先对本发明实施例所提供的消息持久化方法进行详细介绍。
参见图1,图1为本发明实施例的消息持久化方法的一种流程图,包括以下步骤:
S101,在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳。
用户通过IM系统进行通信时,可以在一个会话中,通过该会话与其他用户进行通信,也可以同时在多个会话中,分别通过多个会话与其他用户进行通信。在用户在线时,可以及时读取会话中的消息。而用户在离线之后再次上线时,还可以读取会话中的未读消息。本发明实施例的应用场景是用户在离线之后再次上线时,如何读取用户所在会话中的消息,本发明实施例的执行主体为服务器。
本发明实施例中,用户的会话中通常包含多个消息,可以根据会话中消息的时间戳,建立该会话对应的已读消息时间戳,已读消息时间戳用于表示用户读取会话中消息的时刻。服务器可以将每个会话对应的已读消息时间戳发送至用户,并保存至用户本地,这样,用户也可以根据该已读消息时间戳,确定已读取该会话中消息的时刻。本步骤中建立已读消息时间戳的时刻是用户离线时,即,在已读消息时间戳之前,会话中的消息用户均已读取;在已读消息时间戳之后,该会话中的消息用户还未读取。本发明的一种实现方式中,可以获取会话中最后一条消息的时间戳,将最后一条消息的时间戳作为会话对应的已读消息时间戳。当然,还可以将当前时刻(即用户离线时刻)作为会话对应的已读消息时间戳。
S102,建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;其中,消息队列包含会话在已读消息时间戳之前的所有消息,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置。
本发明实施例中,为了节省存储空间,使消息只存储一份,可以为每个会话建立一个消息队列,消息队列中保存了该会话的所有消息,会话中的所有用户均可以从消息队列中读取消息。并且,可以为消息队列设置两个游标:第一游标和第二游标,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置,并且第二游标位于第一游标之后。这样,用户在读取消息时,只读取第一游标和第二游标之间的消息(即未读消息)即可。消息队列中第一游标和第二游标的位置可参见图2,特别地,在用户离线时,对于消息队列中的消息,用户均已读取,因此,第一游标和第二游标的位置是相同的,也就是说,此时不存在未读消息。
S103,在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,判断会话是否更新。
需要说明的是,会话对应的已读消息时间戳是固定的,而在用户离线的过程中,会话中的其他用户可以在线,会话是可以更新的,当前时刻会话的时间戳可以是当前时刻会话中最后一条消息对应的时间戳,已读消息时间戳和当前时刻会话的时间戳可参见图3。本发明的一种实现方式中,可以比较已读消息时间戳和当前时刻会话的时间戳,若判断已读消息时间戳和当前时刻会话的时间戳不同,确定会话更新,即会话中存在未读消息,执行S104;否则,确定会话未更新,即会话中不存在未读消息,那么,不需要读取消息。
S104,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。
本发明实施例中,若会话更新,可以将会话中更新的消息添加至消息队列中,使消息队列包含该会话在当前时刻之前的所有消息。由于消息队列中的消息更新,相应地,可以对第二游标进行更新,可选的,将第二游标更新为会话的已更新消息队列中最后一条消息结束的位置。这样,第一游标和第二游标之间的消息为未读消息,因此,用户读取位于第一游标和第二游标之间的消息即可。在确定用户读取位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻,用于表示当前时刻之前的消息用户均已读取。
图1所示实施例的有益效果在于,由于会话中的所有消息只存储一份,节省了存储空间,基于消息队列的会话消息,支持多个用户读取,基于已读消息时间戳的会话,可以使用户高效地读取未读消息。因此,本发明提高读取效率的同时节省了存储空间。
本发明的一种实现方式中,图1实施例S102中,对会话的消息队列设置第一游标,包括:
将已读消息时间戳的消息所在位置确定为会话的消息队列的第一游标。
本发明实施例中,第一游标用于表示会话的消息队列中用户已读取消息的位置,已读消息时间戳之前的消息为用户已读取的消息,该已读消息时间戳之后的消息为未读消息。因此,已读消息时间戳的消息为用户读取的最后一个消息,那么,该最后一个消息所在位置即为会话的消息队列的第一游标。第一游标的位置是随着已读消息时间戳的变化而变化的,若已读消息时间戳更新,那么,第一游标的位置也会更新。因此,若用户读取新的未读消息,已读消息时间戳将更新,第一游标的位置也将更新;否则,已读消息时间戳和第一游标的位置是不变的。
相应于上述方法实施例,本发明实施例还提供了一种消息持久化装置,参见图4,图4为本发明实施例的消息持久化装置的一种结构图,包括:
时间戳建立模块401,用于在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳;
游标设置模块402,用于建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;其中,消息队列包含会话在已读消息时间戳之前的所有消息,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置;
判断模块403,用于在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,确定会话是否更新;
更新模块404,用于在判断模块的判断结果为是时,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。
本发明实施例的消息持久化装置,在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳;建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;消息队列包含会话在已读消息时间戳之前的所有消息,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置;在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,确定会话是否更新;若确定会话更新,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。本发明实施例中,由于所有消息只存储一份,因此节省了存储空间,并且,基于队列的会话消息,支持多个用户读取,基于已读消息时间戳的会话,可以使用户高效地读取未读消息。可见,本发明提高读取效率的同时节省了存储空间。
可选的,时间戳建立模块,具体用于获取会话中最后一条消息的时间戳,将最后一条消息的时间戳作为会话对应的已读消息时间戳。
可选的,游标设置模块,包括:
第一游标设置子模块,用于将已读消息时间戳的消息所在位置确定为会话的消息队列的第一游标。
可选的,更新模块,包括:
第二游标更新子模块,用于将第二游标更新为会话的已更新消息队列中最后一条消息结束的位置。
可选的,判断模块,具体用于若判断已读消息时间戳和当前时刻会话的时间戳不同,确定会话更新,否则,确定会话未更新。
需要说明的是,本发明实施例的装置是应用上述消息持久化方法的装置,则上述消息持久化方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
本发明实施例还提供了一种电子设备,参见图5,图5为本发明实施例的电子设备的结构图,包括:处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502、存储器503通过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现上述实施例中任一消息持久化方法的步骤。
本发明实施例的电子设备中,处理器通过执行存储器上所存放的程序,在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳;建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;消息队列包含会话在已读消息时间戳之前的所有消息,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置;在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,确定会话是否更新;若确定会话更新,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。本发明实施例中,由于所有消息只存储一份,因此节省了存储空间,并且,基于队列的会话消息,支持多个用户读取,基于已读消息时间戳的会话,可以使用户高效地读取未读消息。可见,本发明提高读取效率的同时节省了存储空间。
需要说明的是,上述电子设备提到的通信总线504可以是PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。通信总线504可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口502用于上述电子设备与其他设备之间的通信。
存储器503可以包括RAM(Random Access Memory,随机存取存储器),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器503还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器501可以是通用处理器,包括:CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital SignalProcessing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一消息持久化方法的步骤。
本发明实施例的计算机可读存储介质中存储的指令在计算机上运行时,在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳;建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;消息队列包含会话在已读消息时间戳之前的所有消息,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置;在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,确定会话是否更新;若确定会话更新,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。本发明实施例中,由于所有消息只存储一份,因此节省了存储空间,并且,基于队列的会话消息,支持多个用户读取,基于已读消息时间戳的会话,可以使用户高效地读取未读消息。可见,本发明提高读取效率的同时节省了存储空间。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一消息持久化方法的步骤。
本发明实施例的计算机程序产品,当其在计算机上运行时,在检测到用户离线时,获取用户的会话,根据会话中消息的时间戳,建立会话对应的已读消息时间戳;建立会话的消息队列,对会话的消息队列设置第一游标和第二游标;消息队列包含会话在已读消息时间戳之前的所有消息,第一游标表示会话的消息队列中用户已读取的最后一条消息结束的位置,第二游标表示会话的消息队列中未读取的最后一条消息结束的位置;在检测到用户上线后,根据已读消息时间戳以及当前时刻会话的时间戳,确定会话是否更新;若确定会话更新,将会话中更新的消息添加至会话的消息队列中,并对第二游标进行更新,在确定用户读取会话的消息队列中位于第一游标和第二游标之间的消息之后,将已读消息时间戳更新为当前时刻。本发明实施例中,由于所有消息只存储一份,因此节省了存储空间,并且,基于队列的会话消息,支持多个用户读取,基于已读消息时间戳的会话,可以使用户高效地读取未读消息。可见,本发明提高读取效率的同时节省了存储空间。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种消息持久化方法,其特征在于,所述方法包括:
在检测到用户离线时,获取所述用户的会话,根据所述会话中消息的时间戳,建立所述会话对应的已读消息时间戳;
建立所述会话的消息队列,对所述会话的消息队列设置第一游标和第二游标;其中,所述消息队列包含所述会话在所述已读消息时间戳之前的所有消息,所述第一游标表示所述会话的消息队列中所述用户已读取的最后一条消息结束的位置,所述第二游标表示所述会话的消息队列中未读取的最后一条消息结束的位置;
在检测到所述用户上线后,根据所述已读消息时间戳以及当前时刻所述会话的时间戳,判断所述会话是否更新;
若确定所述会话更新,将所述会话中更新的消息添加至所述会话的消息队列中,并对所述第二游标进行更新,在确定所述用户读取所述会话的消息队列中位于所述第一游标和所述第二游标之间的消息之后,将所述已读消息时间戳更新为当前时刻。
2.根据权利要求1所述的消息持久化方法,其特征在于,所述根据所述会话中消息的时间戳,建立所述会话对应的已读消息时间戳,包括:
获取所述会话中最后一条消息的时间戳,将最后一条消息的时间戳作为所述会话对应的已读消息时间戳。
3.根据权利要求1所述的消息持久化方法,其特征在于,所述对所述会话的消息队列设置第一游标,包括:
将所述已读消息时间戳的消息所在位置确定为所述会话的消息队列的第一游标。
4.根据权利要求1所述的消息持久化方法,其特征在于,所述对所述第二游标进行更新,包括:
将第二游标更新为所述会话的已更新消息队列中最后一条消息结束的位置。
5.根据权利要求1所述的消息持久化方法,其特征在于,所述根据所述已读消息时间戳以及当前时刻所述会话的时间戳,确定所述会话是否更新,包括:
若判断所述已读消息时间戳和当前时刻所述会话的时间戳不同,确定所述会话更新,否则,确定所述会话未更新。
6.一种消息持久化装置,其特征在于,所述装置包括:
时间戳建立模块,用于在检测到用户离线时,获取所述用户的会话,根据所述会话中消息的时间戳,建立所述会话对应的已读消息时间戳;
游标设置模块,用于建立所述会话的消息队列,对所述会话的消息队列设置第一游标和第二游标;其中,所述消息队列包含所述会话在所述已读消息时间戳之前的所有消息,所述第一游标表示所述会话的消息队列中所述用户已读取的最后一条消息结束的位置,所述第二游标表示所述会话的消息队列中未读取的最后一条消息结束的位置;
判断模块,用于在检测到所述用户上线后,根据所述已读消息时间戳以及当前时刻所述会话的时间戳,判断所述会话是否更新;
更新模块,用于在所述判断模块的判断结果为是时,将所述会话中更新的消息添加至所述会话的消息队列中,并对所述第二游标进行更新,在确定所述用户读取所述会话的消息队列中位于所述第一游标和所述第二游标之间的消息之后,将所述已读消息时间戳更新为当前时刻。
7.根据权利要求6所述的消息持久化装置,其特征在于,所述时间戳建立模块,具体用于获取所述会话中最后一条消息的时间戳,将最后一条消息的时间戳作为所述会话对应的已读消息时间戳。
8.根据权利要求6所述的消息持久化装置,其特征在于,所述游标设置模块,包括:
第一游标设置子模块,用于将所述已读消息时间戳的消息所在位置确定为所述会话的消息队列的第一游标。
9.根据权利要求6所述的消息持久化装置,其特征在于,所述更新模块,包括:
第二游标更新子模块,用于将第二游标更新为所述会话的已更新消息队列中最后一条消息结束的位置。
10.根据权利要求6所述的消息持久化装置,其特征在于,所述判断模块,具体用于若判断所述已读消息时间戳和当前时刻所述会话的时间戳不同,确定所述会话更新,否则,确定所述会话未更新。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1~5任一所述的消息持久化方法的步骤。
CN201910063653.7A 2019-01-23 2019-01-23 一种消息持久化方法、装置及电子设备 Pending CN109818851A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910063653.7A CN109818851A (zh) 2019-01-23 2019-01-23 一种消息持久化方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910063653.7A CN109818851A (zh) 2019-01-23 2019-01-23 一种消息持久化方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN109818851A true CN109818851A (zh) 2019-05-28

Family

ID=66604879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910063653.7A Pending CN109818851A (zh) 2019-01-23 2019-01-23 一种消息持久化方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN109818851A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111669313A (zh) * 2020-05-29 2020-09-15 广西东信互联科技有限公司 一种即时通讯系统消息的储存及同步方法
CN112380266A (zh) * 2020-10-16 2021-02-19 广州市百果园网络科技有限公司 消息数据处理方法、装置、设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878080A (zh) * 2005-06-09 2006-12-13 华为技术有限公司 网络管理系统对通信设备进行轮询的方法
CN104090714A (zh) * 2014-07-17 2014-10-08 广东欧珀移动通信有限公司 一种移动终端查看聊天记录的方法及系统
CN104320330A (zh) * 2014-11-03 2015-01-28 北京微车一族信息技术发展有限公司 一种电子论坛的信息发布方法
CN104836719A (zh) * 2014-02-11 2015-08-12 阿里巴巴集团控股有限公司 一种即时通讯未读消息的同步方法和系统
US20170171132A1 (en) * 2015-12-10 2017-06-15 Facebook, Inc. Techniques for ephemeral messaging with a message queue
CN107704329A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN108174267A (zh) * 2017-12-21 2018-06-15 平安科技(深圳)有限公司 直播中互动信息的发送装置、方法及计算机可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878080A (zh) * 2005-06-09 2006-12-13 华为技术有限公司 网络管理系统对通信设备进行轮询的方法
CN104836719A (zh) * 2014-02-11 2015-08-12 阿里巴巴集团控股有限公司 一种即时通讯未读消息的同步方法和系统
CN104090714A (zh) * 2014-07-17 2014-10-08 广东欧珀移动通信有限公司 一种移动终端查看聊天记录的方法及系统
CN104320330A (zh) * 2014-11-03 2015-01-28 北京微车一族信息技术发展有限公司 一种电子论坛的信息发布方法
US20170171132A1 (en) * 2015-12-10 2017-06-15 Facebook, Inc. Techniques for ephemeral messaging with a message queue
CN107704329A (zh) * 2017-10-16 2018-02-16 中汇信息技术(上海)有限公司 一种消息持久化方法、服务器和计算机可读存储介质
CN108174267A (zh) * 2017-12-21 2018-06-15 平安科技(深圳)有限公司 直播中互动信息的发送装置、方法及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111669313A (zh) * 2020-05-29 2020-09-15 广西东信互联科技有限公司 一种即时通讯系统消息的储存及同步方法
CN112380266A (zh) * 2020-10-16 2021-02-19 广州市百果园网络科技有限公司 消息数据处理方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
US10116607B2 (en) Splitting posts in a thread into a new thread
US10200319B2 (en) Searchable peer-to-peer system through instant messaging based topic indexes
US10613717B2 (en) Reproducing state of source environment when image was screen captured on a different computing device using resource location, resource navigation and positional metadata embedded in image
WO2016008337A1 (en) Method and system for synchronizing instant messages between multiple clients
US20090313554A1 (en) Email communications that include a thread status indicator
US20170201476A1 (en) Information exchange methods and devices
JP6918116B2 (ja) インスタントメッセージンググループ管理方法および装置
US20180046707A1 (en) Providing searching strategy in connection with answering question in message
JP5893050B2 (ja) ソーシャル・メデイアにおけるコミュニティを検出する方法、コンピュータ・プログラム、コンピュータ
CN109818851A (zh) 一种消息持久化方法、装置及电子设备
CN103957306A (zh) 在通信终端共享信息的方法和设备
US9319364B2 (en) Displaying message content differential in popup window
CN112838980B (zh) 一种消息处理方法、系统、装置、电子设备及存储介质
EP3493486A1 (en) Publishing message conversations to electronic forums
US9313165B2 (en) Providing contextual relevance of an unposted message to an activity stream after a period of time elapses
EP2611082A1 (en) Method for instant communicating between instant messaging clients
CN112822089B (zh) 用于添加好友的方法和设备
CN107196843B (zh) 一种即时通信的方法和装置
CN114500438B (zh) 文件共享方法、装置、电子设备及存储介质
JP2007234045A (ja) 合否情報通知方法、合否情報通知装置及び合否情報通知プログラム
US9147182B2 (en) Prioritizing responses to communications based on user's efforts in creating communications
CN116319633A (zh) 即时通信方法、装置、设备和存储介质
CN115269645A (zh) 信息查询方法、装置、电子设备和计算机可读介质
KR20150091277A (ko) Mim 서비스 시스템

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190528