CN108650168B - 多人会话的成员数据获取方法和装置、存储介质、处理器 - Google Patents
多人会话的成员数据获取方法和装置、存储介质、处理器 Download PDFInfo
- Publication number
- CN108650168B CN108650168B CN201810309059.7A CN201810309059A CN108650168B CN 108650168 B CN108650168 B CN 108650168B CN 201810309059 A CN201810309059 A CN 201810309059A CN 108650168 B CN108650168 B CN 108650168B
- Authority
- CN
- China
- Prior art keywords
- synchronization task
- person
- created
- server
- data
- 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
- 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/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1895—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
-
- 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/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多人会话的成员数据获取方法和装置、存储介质、处理器。该方法包括:接收服务器发送的多人会话的成员加入通知;在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务,新的成员同步任务用于指示在创建新的成员同步任务后的第二时间点从服务器中获取加入多人会话的成员的第二成员数据;在从创建新的成员同步任务的第三时间点至创建新的成员同步任务后的第二时间之间未再次接收到多人会话的成员加入通知的情况下,响应新的成员同步任务,从服务器中获取第二成员数据。本发明解决了相关技术中多人会话的成员数据更新效率较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种多人会话的成员数据获取方法和装置、存储介质、处理器。
背景技术
多人会话是一种即时通信(Instant Messaging,简称为IM)工具中经常使用的沟通方式,它又称为临时会话,其可由任何一人发起,会话中没有群主、管理员等身份的人,成员一律平等,加入和退出非常方便。该多人会话的创建方式与群相比差别比较大,群是先由群主创建,创建时除了群主外没有别人,群成员加入时也需要双方的同意,而多人会话中的人随时可加入一个或多个,因此多人会话的创建存在数据同步的复杂技术问题。
目前,多人会话创建时,客户端会收到服务器发送的每个多人会话成员加入的通知,客户端依据此通知,取得本地该多人会话的时间戳,与服务器的时间戳比较,进行成员数据增量更新,也即只同步客户端本地时间戳与服务器时间戳中间隔的时间段的数据。由于加入通知是逐个发送到客户端的,将会导致客户端根据时间戳频繁向服务器请求数据更新,当一次性拉取多个成员加入多人会话时,需要从服务器多次请求成员数据进行更新,导致成员数据更新效率较低。在极端情况下,从服务器端获取到的成员数据不够完全,有可能造成成员数据丢失的问题。
针对相关技术中多人会话的成员数据更新效率较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种多人会话的成员数据获取方法和装置、存储介质、处理器,以至少解决相关技术中多人会话的成员数据更新效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种多人会话的成员数据获取方法,包括:接收步骤,接收服务器发送的多人会话的成员加入通知;处理步骤,在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务,其中,所述已创建的成员同步任务用于指示在创建所述已创建的成员同步任务后的第一时间点从所述服务器中获取加入所述多人会话的成员的第一成员数据,所述新的成员同步任务用于指示在创建所述新的成员同步任务后的第二时间点从所述服务器中获取加入所述多人会话的成员的第二成员数据,所述第二成员数据包括所述第一成员数据;获取步骤,在从创建所述新的成员同步任务的第三时间点至创建所述新的成员同步任务后的第二时间之间未再次接收到所述多人会话的成员加入通知的情况下,响应所述新的成员同步任务,从所述服务器中获取所述第二成员数据。
进一步地,在所述处理步骤之后,所述获取步骤之前,所述方法还包括:在所述第三时间点至所述第二时间点之间的任意时刻再次接收到所述多人会话的成员加入通知的情况下,返回执行所述处理步骤。
进一步地,在所述接收步骤之后,所述方法还包括:在不存在所述多人会话的情况下,向所述服务器请求更新多人会话列表,其中,更新后的所述多人会话列表中包括所述多人会话;在所述多人会话列表更新完之后,执行所述处理步骤。
进一步地,其特征在于,在所述获取步骤之后,所述方法还包括:将所述第二成员数据存储在数据库中。
进一步地,在所述获取步骤之后,所述方法还包括:向用户界面层发送所述多人会话的成员加入通知,以指示所述用户界面层在所述数据库中存在所述多人会话,且所述数据库中存在所述第二成员数据的情况下,根据所述数据库中的所述第二成员数据刷新所述多人会话的成员列表。
根据本发明实施例的另一方面,还提供了一种多人会话的成员数据获取装置,包括:接收单元,用于接收服务器发送的多人会话的成员加入通知;处理单元,用于在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务,其中,所述已创建的成员同步任务用于指示在创建所述已创建的成员同步任务后的第一时间点从所述服务器中获取加入所述多人会话的成员的第一成员数据,所述新的成员同步任务用于指示在创建所述新的成员同步任务后的第二时间点从所述服务器中获取加入所述多人会话的成员的第二成员数据,所述第二成员数据包括所述第一成员数据;获取单元,用于在从创建所述新的成员同步任务的第三时间点至创建所述新的成员同步任务后的第二时间之间未再次接收到所述多人会话的成员加入通知的情况下,响应所述新的成员同步任务,从所述服务器中获取所述第二成员数据。
进一步地,所述装置还包括:第一执行单元,用于在所述创建新的成员同步任务之前,在所述响应所述新的成员同步任务,从所述服务器中获取所述第二成员数据之后,在所述第三时间点至所述第二时间点之间的任意时刻再次接收到所述多人会话的成员加入通知的情况下,返回执行所述在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务的步骤。
进一步地,所述装置还包括:更新单元,用于在接收服务器发送的多人会话的成员加入通知之后,在不存在所述多人会话的情况下,向所述服务器请求更新多人会话列表,其中,更新后的所述多人会话列表中包括所述多人会话;第二执行单元,用于在所述多人会话列表更新完之后,执行所述在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务的步骤。
进一步地,所述装置还包括:存储单元,用于在所述从所述服务器中获取所述第二成员数据之后,将所述第二成员数据存储在数据库中。
进一步地,所述装置还包括:发送单元,用于在从所述服务器中获取所述第二成员数据之后,向用户界面层发送所述多人会话的成员加入通知,以指示所述用户界面层在所述数据库中存在所述多人会话,且所述数据库中存在所述第二成员数据的情况下,根据所述数据库中的所述第二成员数据刷新所述多人会话的成员列表。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的多人会话的成员数据获取方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一项所述的多人会话的成员数据获取方法。
根据本发明实施例的另一方面,还提供了一种终端,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项所述的多人会话的成员数据获取方法。
在本发明实施例中,通过在接收到服务器发送的多人会话的成员加入通知时,在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务,该新的成员同步任务为延迟一段时间从服务器请求成员数据,如果在执行该新的成员同步任务之前未再次接收到多人会话的成员加入通知,则响应该新的成员同步任务从服务器中获取新加入该多人会话的成员的数据,达到了降低向服务器请求新加入多人会话的成员的数据的频率的目的,进而解决了相关技术中多人会话的成员数据更新效率较低的技术问题,从而实现了提高多人会话的成员数据的更新效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的多人会话的成员数据获取方法的硬件环境的示意图;
图2是根据本发明实施例的多人会话的成员数据获取方法的流程图;
图3是根据本发明实施例的客户端向服务器请求成员数据的流程图;
图4是根据本发明实施例的底层同步数据的流程图;
图5是根据本发明实施例的UI层数据更新的流程图;以及
图6是根据本发明实施例的多人会话的成员数据获取装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种多人会话的成员数据获取方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,在本实施例中,上述多人会话的成员数据获取方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的多人会话的成员数据获取方法可以由服务器102和终端104共同执行。其中,终端104执行本发明实施例的多人会话的成员数据获取方法也可以是由安装在其上的客户端来执行。
可选地,服务器102以及终端104上的客户端共同执行本发明实施例的多人会话的成员数据获取方法的具体流程可以描述为:客户端接收服务器发送的多人会话的成员加入通知;客户端在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务,其中,已创建的成员同步任务用于指示在创建已创建的成员同步任务后的第一时间点从服务器中获取加入多人会话的成员的第一成员数据,新的成员同步任务用于指示在创建新的成员同步任务后的第二时间点从服务器中获取加入多人会话的成员的第二成员数据,第二成员数据包括第一成员数据;客户端在从创建新的成员同步任务的第三时间点至创建新的成员同步任务后的第二时间之间未再次接收到多人会话的成员加入通知的情况下,响应新的成员同步任务,从服务器中获取第二成员数据。
下面将对本发明实施例的多人会话的成员数据获取方法进行详细说明。
图2是根据本发明实施例的多人会话的成员数据获取方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,接收步骤,接收服务器发送的多人会话的成员加入通知;
步骤S204,处理步骤,在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务,其中,已创建的成员同步任务用于指示在创建已创建的成员同步任务后的第一时间点从服务器中获取加入多人会话的成员的第一成员数据,新的成员同步任务用于指示在创建新的成员同步任务后的第二时间点从服务器中获取加入多人会话的成员的第二成员数据,第二成员数据包括第一成员数据;
步骤S206,获取步骤,在从创建新的成员同步任务的第三时间点至创建新的成员同步任务后的第二时间点之间未再次接收到多人会话的成员加入通知的情况下,响应新的成员同步任务,从服务器中获取第二成员数据。
通过上述步骤,通过在接收到服务器发送的多人会话的成员加入通知时,在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务,该新的成员同步任务为延迟一段时间从服务器请求成员数据,如果在执行该新的成员同步任务之前未再次接收到多人会话的成员加入通知,则响应该新的成员同步任务从服务器中获取新加入该多人会话的成员的数据,达到了降低向服务器请求新加入多人会话的成员的数据的频率的目的,进而解决了相关技术中多人会话的成员数据更新效率较低的技术问题,从而实现了提高多人会话的成员数据的更新效率的技术效果。
当某个客户端创建多人会话,或者由其他客户端创建并邀请该客户端加入该多人会话时,会向服务器发起该多人会话请求,服务器则会逐个通知各个客户端该多人会话的成员加入通知。例如,张三创建了一个三个人的多人会话,包括张三自己、李四、王五。张三所在客户端则会向服务器发起该多人会话的请求,服务器接收到该请求后可以记录并保存该多人会话的标识,当李四加入该多人会话时,服务器会分别向张三、王五所在客户端发送李四加入该多人会话的通知,当王五加入该多人会话时,服务器会分别向张三、李四所在客户端发送王五加入该多人会话的通知。
可选地,多人会话的成员加入通知可以携带有以下信息:多人会话的标识、新加入该多人会话的成员的标识等。除上述所列举的信息之外,多人会话的成员加入通知还可以携带有其他信息,此处不再一一举例说明。
可选地,客户端在接收到该多人会话的成员加入通知之后,所执行的成员同步流程可以如图3所示,具体可以包括以下步骤:
步骤S301,判断是否已经存在该多人会话。客户端可以根据多人会话的成员加入通知所携带的多人会话的标识判断该客户端中是否已经存在有该多人会话,如果客户端中已经存在有该多人会话,则执行步骤S302;如果客户端中不存在有该多人会话,则执行步骤S307。
步骤S302,判断已创建的成员同步任务是否已经执行。其中,已创建的成员同步任务可以用于指示在创建已创建的成员同步任务后的第一时间点从服务器中获取加入多人会话的成员的第一成员数据。需要说明的是,第一时间点可以根据实际需求确定或调整,此处不做具体限定。第一成员数据可以为创建该已创建的成员同步任务时所请求的加入该多人会话的成员的数据。如果判断出已创建有成员同步任务且已创建的成员同步任务还未执行,则执行步骤S303;如果判断出未创建成员同步任务或者已创建有成员同步任务且已创建的成员同步任务已经执行,则执行步骤S304。
步骤S303,删除已创建的成员同步任务,然后执行步骤S304。
步骤S304,创建新的成员同步任务,然后执行步骤S305。其中,新的成员同步任务可以用于指示在创建新的成员同步任务后的第二时间点从服务器中获取加入多人会话的成员的第二成员数据。需要说明的是,第二时间点可以根据实际需求确定或调整,此处不做具体限定。第二成员数据可以为创建该新的成员同步任务时所请求的加入该多人会话的成员的数据。
可选地,在已创建成员同步任务且已创建的成员同步任务还未执行的情况下,第二成员数据可以包括第一成员数据,也就是说,当第一次接收到多人会话成员加入通知后,可以创建用于请求第一成员数据的成员同步任务,其中,该任务可以为延迟请求任务,也即延迟一段时间在第一时间点执行该用于请求第一成员数据的成员同步任务。在还未达到第一时间点之前,也即用于请求第一成员数据的成员同步任务还未执行,如果再次接收到该多人会话成员加入通知,则可以删除该用于请求第一成员数据的成员同步任务,并创建一个新的成员同步任务,该新的成员同步任务可以用于请求第二成员数据,其中,第二成员数据包括第一成员数据,也就是说,本发明实施例通过将成员同步任务延迟一段时间执行,可以实现将两个请求成员数据的成员同步任务转化为一个,这样可以实现在最后一个成员加入多人会话时在执行一次向服务器请求成员数据的成员同步任务,以达到减少向服务器请求多人会话的成员的数据的次数,进而达到提高多人会话成员数据更新效率的效果。
步骤S305,判断在从创建新的成员同步任务的第三时间点至创建新的成员同步任务后的第二时间点之间是否再次接收到多人会话的成员加入通知。如果未再次接收到多人会话的成员加入通知,则执行步骤S306;如果再次接收到多人会话的成员加入通知,则返回执行步骤S301。
步骤S306,响应新的成员同步任务,从服务器中获取第二成员数据。
可选地,客户端在从服务器中获取第二成员数据之后,可以将获取到的第二成员数据存储在客户端的数据库中,以便于用户界面层可以直接从数据库中获取到第二成员数据,实现快速刷新多人会话列表的目的。
步骤S307,向服务器请求更新多人会话列表,其中,更新后的所述多人会话列表中包括该多人会话。待多人会话列表更新完之后,执行步骤S304。
作为一种可选的示例,张三创建了一个三个人的多人会话,包括张三自己、李四、王五。当张三所在客户端接收到服务器发送的李四加入该多人会话的通知时,如果张三所在客户端中已经存在该多人会话,则张三所在客户端会创建一个成员同步任务,该成员同步任务可以用于指示10毫秒后向服务器请求新加入该多人会话的李四的数据。如果在这10毫秒期间再次接收到服务器发送的王五加入该多人会话的通知,在张三所在客户端中已经存在该多人会话,则张三所在客户端会删除已创建的用于请求李四的数据的成员同步任务,创建一个成员同步任务,该成员同步任务可以用于指示10毫秒后向服务器请求新加入该多人会话的王五的数据以及李四的数据。如果在创建新的成员同步任务之后的10毫秒期间未接收到其他该多人会话的成员加入通知,则张三所在客户端可以直接向服务器请求新加入该多人会话的王五的数据以及李四的数据。这样就可以实现仅向服务器请求一次成员数据,进而达到提高多人会话成员数据更新效率的效果。
可选地,在从服务器获取到第二成员数据,并将其存储在数据库中之后,本发明实施例还可以向用户界面层发送多人会话的成员加入通知,以指示用户界面层在数据库中存在该多人会话,且数据库中存在第二成员数据的情况下,根据第二成员数据刷新该多人会话的成员列表。
此处需要说明的是,客户端的用户界面层在接收到多人会话的成员加入通知后,首先判断该多人会话是否存在,如果不存在,则需要向服务器请求增量更新该多人会话列表,并在更新完多人会话列表后请求新加入的成员数据,以实现刷新多人会话列表的目的。如果存在,则需要判断新加入的成员的第二成员数据是否存在,如果存在,则刷新该多人会话的成员列表;如果不存在,则需要向服务器重新请求该第二成员数据,然后刷新该多人会话的成员列表。
需要说明的是,多人会话中的每个成员所在的客户端均可以执行本发明实施例的多人会话的成员数据获取方法,以此来实现多人会话的成员同步。
本发明还提供了一种优选实施例,该优选实施例提供了一种创建多人会话时的多人会话成员同步方法。该方法可以解决多人会话成员同步不完全的问题,并降低向服务器请求新增成员数据的频率。减少数据处理层向用户界面层(User Interface简称为UI),以下简称为UI层,发送数据更新的次数,提高创建多人会话的性能,提升用户体验。
创建多人会话主要分为两个步骤,一是底层同步数据,二是UI层收到数据更新,并更新UI。
底层同步数据具体为客户端收到服务器端单个多人会话成员加入的通知时,首先判断该多人会话是否存在,如果存在,启用延迟请求服务器端同步该多人会话成员的任务,该任务根据该多人会话的本地时间戳,请求服务器端同步该多人会话成员,服务器会根据该时间戳增量更新成员信息到客户端。如果该多人会话还不存在,停用延迟请求服务器端同步多人会话列表的旧任务,然后再启用新任务,该新任务则根据多人会话本地列表请求服务器更新该列表。接着获取到最新的列表,比较本地多人会话的时间戳,并更新其成员列表。通过此方式,可大大减少多个人加入多人会话时的同步次数,提高多人会话同步的效率。最后向UI层发送多人会话成员加入的通知。
UI层收到多人会话成员加入的通知后,依然检测此多人会话本地是否存在,如果此多人会话存在则检测新加入的人是否存在,不存在就设置时间戳为0,进行全部更新。如果此多人会话不存在,则同步更新多人会话列表,如此可保证多人会话的成员信息完整性。进行完此步骤后,UI层依据此通知刷新界面。
底层同步数据的过程可以如图4所示,其详细步骤可以包括:
步骤S401,创建多人会话。客户端本人发起创建多人会话的请求,或者由其他人创建并邀请自己加入该多人会话。
步骤S402,收到多人会话成员加入的通知。该通知是服务器逐个推送到客户端的。
步骤S403,客户端检查该多人会话是否存在。若不存在,则执行步骤S404,向服务端请求增量更新多人会话列表。待更新多人会话列表的任务完成后,在执行步骤S407;若存在,则执行步骤S405。
步骤S405,判断请求增量更新多人会话列表的旧任务是否还未执行。如果还未执行,则执行步骤S406,移除旧的任务;否则执行步骤S407,创建请求增量更新多人会话列表的新任务。此处需要说明的是,关键一步是创建的任务是延迟请求的任务,每个延迟任务延迟例如10ms左右执行。为什么创建的是延迟任务而不是立即执行的任务呢,若是立即执行的任务,则每次收到成员加入的情况下都会立即向服务器发起同步成员请求,造成网络带宽资源浪费,程序执行效率低下。若是延迟任务,当每个成员加入的通知在10ms之内到达时,每次旧的延迟任务都不执行,只有最后一个成员都加入时,才执行了一个同步的任务。还需要说明的是,若网络延迟,每个成员加入的通知超过10ms,则下次延迟任务延迟时间将翻倍,最大延迟到40ms请求,如此请求任务虽然大于一次但也不会频繁向服务器请求。
步骤S408,向服务器请求增量更新成员数据。获取新的成员数据写入数据库,并更新时间戳。
单个成员加入通知的处理结束,若有新成员加入通知,依次执行步骤S402至步骤S408。
UI层数据更新过程可以如图5所示,其详细步骤可以包括:
步骤S501,UI层收到数据处理底层发来多人会话成员加入通知。
步骤S502,判断多人会话是否存在。如果不存在,则执行步骤S503,向服务端请求增量更新多人会话列表。待更新多人会话列表的任务完成后,在执行步骤S504,向服务器请求增量更新多人会话列表。增量更新多人会话列表的数据请求到新的成员信息后,将会向UI层发送成员加入的通知,返回执行步骤S501;若存在,则执行步骤S505。
步骤S505,判断新加入的成员是否在多人会话中。如果在,则执行步骤S506,刷新多人会话列表;如果不在,说明客户端底层同步数据出现了错误,这种情况很少发生,但极端情况下会出现。此时,执行步骤S507,将同步多人会话成员的时间戳设置为0,向服务器请求全部更新成员。如此,安全更新的数据的概率大大提高。
本发明解决了多人会话成员同步不完全的问题,并降低客户端向服务器请求新增成员数据的频率。其关键点在于底层同步数据时,使用了延迟任务。上层UI刷新时,又进一步确保了数据的安全性。经检验,使用此方式后,再没有遇到多人会话成员丢失的情况,同时创建多人会话的效率也提高了2倍以上。
根据本发明实施例,还提供了一种多人会话的成员数据获取装置的装置实施例,需要说明的是,该多人会话的成员数据获取装置可以用于执行本发明实施例中的多人会话的成员数据获取方法,也即本发明实施例中的多人会话的成员数据获取方法可以在该多人会话的成员数据获取装置中执行。
图6是根据本发明实施例的多人会话的成员数据获取装置的示意图,如图6所示,该装置可以包括:
接收单元62,用于接收服务器发送的多人会话的成员加入通知;处理单元64,用于在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务,其中,已创建的成员同步任务用于指示在创建已创建的成员同步任务后的第一时间点从服务器中获取加入多人会话的成员的第一成员数据,新的成员同步任务用于指示在创建新的成员同步任务后的第二时间点从服务器中获取加入多人会话的成员的第二成员数据,第二成员数据包括第一成员数据;获取单元66,用于在从创建新的成员同步任务的第三时间点至创建新的成员同步任务后的第二时间之间未再次接收到多人会话的成员加入通知的情况下,响应新的成员同步任务,从服务器中获取第二成员数据。
需要说明的是,该实施例中的接收单元62可以用于执行本发明实施例中的步骤S202,该实施例中的处理单元64可以用于执行本发明实施例中的步骤S204,该实施例中的获取单元66可以用于执行本发明实施例中的步骤S206。上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。
可选地,该装置还可以包括:第一执行单元,用于在创建新的成员同步任务之前,在响应新的成员同步任务,从服务器中获取第二成员数据之后,在第三时间点至第二时间点之间的任意时刻再次接收到多人会话的成员加入通知的情况下,返回执行在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务的步骤。
可选地,该装置还可以包括:更新单元,用于在接收服务器发送的多人会话的成员加入通知之后,在不存在多人会话的情况下,向服务器请求更新多人会话列表,其中,更新后的多人会话列表中包括多人会话;第二执行单元,用于在多人会话列表更新完之后,执行在已经存在多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除已创建的成员同步任务,并创建新的成员同步任务的步骤。
可选地,该装置还可以包括:存储单元,用于在从服务器中获取第二成员数据之后,将第二成员数据存储在数据库中。
可选地,该装置还可以包括:发送单元,用于在从服务器中获取第二成员数据之后,向用户界面层发送多人会话的成员加入通知,以指示用户界面层在数据库中存在多人会话,且数据库中存在第二成员数据的情况下,根据数据库中的第二成员数据刷新多人会话的成员列表。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的多人会话的成员数据获取方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的多人会话的成员数据获取方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种终端,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述所述的多人会话的成员数据获取方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种多人会话的成员数据获取方法,其特征在于,包括:
接收步骤,接收服务器发送的多人会话的成员加入通知;
处理步骤,在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务,其中,所述已创建的成员同步任务用于指示在创建所述已创建的成员同步任务后的第一时间点从所述服务器中获取加入所述多人会话的成员的第一成员数据,所述新的成员同步任务用于指示在创建所述新的成员同步任务后的第二时间点从所述服务器中获取加入所述多人会话的成员的第二成员数据,所述第二成员数据包括所述第一成员数据;
获取步骤,在从创建所述新的成员同步任务的第三时间点至创建所述新的成员同步任务后的第二时间点之间未再次接收到所述多人会话的成员加入通知的情况下,响应所述新的成员同步任务,从所述服务器中获取所述第二成员数据。
2.根据权利要求1所述的方法,其特征在于,在所述处理步骤之后,所述获取步骤之前,所述方法还包括:
在所述第三时间点至所述第二时间点之间的任意时刻再次接收到所述多人会话的成员加入通知的情况下,返回执行所述处理步骤。
3.根据权利要求1所述的方法,其特征在于,在所述接收步骤之后,所述方法还包括:
在不存在所述多人会话的情况下,向所述服务器请求更新多人会话列表,其中,更新后的所述多人会话列表中包括所述多人会话;
在所述多人会话列表更新完之后,执行所述处理步骤。
4.根据权利要求1所述的方法,其特征在于,在所述获取步骤之后,所述方法还包括:
将所述第二成员数据存储在数据库中。
5.根据权利要求4所述的方法,其特征在于,在所述获取步骤之后,所述方法还包括:
向用户界面层发送所述多人会话的成员加入通知,以指示所述用户界面层在所述数据库中存在所述多人会话,且所述数据库中存在所述第二成员数据的情况下,根据所述数据库中的所述第二成员数据刷新所述多人会话的成员列表。
6.一种多人会话的成员数据获取装置,其特征在于,包括:
接收单元,用于接收服务器发送的多人会话的成员加入通知;
处理单元,用于在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务,其中,所述已创建的成员同步任务用于指示在创建所述已创建的成员同步任务后的第一时间点从所述服务器中获取加入所述多人会话的成员的第一成员数据,所述新的成员同步任务用于指示在创建所述新的成员同步任务后的第二时间点从所述服务器中获取加入所述多人会话的成员的第二成员数据,所述第二成员数据包括所述第一成员数据;
获取单元,用于在从创建所述新的成员同步任务的第三时间点至创建所述新的成员同步任务后的第二时间点之间未再次接收到所述多人会话的成员加入通知的情况下,响应所述新的成员同步任务,从所述服务器中获取所述第二成员数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一执行单元,用于在所述创建新的成员同步任务之前,在所述响应所述新的成员同步任务,从所述服务器中获取所述第二成员数据之后,在所述第三时间点至所述第二时间点之间的任意时刻再次接收到所述多人会话的成员加入通知的情况下,返回执行所述在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务的步骤。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
更新单元,用于在接收服务器发送的多人会话的成员加入通知之后,在不存在所述多人会话的情况下,向所述服务器请求更新多人会话列表,其中,更新后的所述多人会话列表中包括所述多人会话;
第二执行单元,用于在所述多人会话列表更新完之后,执行所述在已经存在所述多人会话的情况下,在已创建成员同步任务且已创建的成员同步任务还未执行时,删除所述已创建的成员同步任务,并创建新的成员同步任务的步骤。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
存储单元,用于在所述从所述服务器中获取所述第二成员数据之后,将所述第二成员数据存储在数据库中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
发送单元,用于在从所述服务器中获取所述第二成员数据之后,向用户界面层发送所述多人会话的成员加入通知,以指示所述用户界面层在所述数据库中存在所述多人会话,且所述数据库中存在所述第二成员数据的情况下,根据所述数据库中的所述第二成员数据刷新所述多人会话的成员列表。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任一项所述的方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任一项所述的方法。
13.一种终端,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810309059.7A CN108650168B (zh) | 2018-04-09 | 2018-04-09 | 多人会话的成员数据获取方法和装置、存储介质、处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810309059.7A CN108650168B (zh) | 2018-04-09 | 2018-04-09 | 多人会话的成员数据获取方法和装置、存储介质、处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108650168A CN108650168A (zh) | 2018-10-12 |
CN108650168B true CN108650168B (zh) | 2021-02-19 |
Family
ID=63745894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810309059.7A Active CN108650168B (zh) | 2018-04-09 | 2018-04-09 | 多人会话的成员数据获取方法和装置、存储介质、处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108650168B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111585774B (zh) * | 2020-03-24 | 2022-02-01 | 福建天泉教育科技有限公司 | 会话更新的方法、存储介质 |
US11356391B2 (en) * | 2020-07-28 | 2022-06-07 | The Boeing Company | Automatic conferencing channel for role-based collaboration |
CN112838980B (zh) * | 2020-12-30 | 2023-06-13 | 北京奇艺世纪科技有限公司 | 一种消息处理方法、系统、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1956386A (zh) * | 2005-10-26 | 2007-05-02 | 腾讯科技(深圳)有限公司 | 基于对等模式建立讨论组及该讨论组即时通信的方法 |
CN105227443A (zh) * | 2015-10-20 | 2016-01-06 | 腾讯科技(深圳)有限公司 | 会话消息的同步方法、同步设备及同步系统 |
WO2016002367A1 (ja) * | 2014-06-30 | 2016-01-07 | 株式会社日立製作所 | 通信システム、通信方法、及び、通信プログラム |
CN106202365A (zh) * | 2016-07-07 | 2016-12-07 | 帅斌鹏 | 数据库更新同步的方法、系统及数据库集群 |
-
2018
- 2018-04-09 CN CN201810309059.7A patent/CN108650168B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1956386A (zh) * | 2005-10-26 | 2007-05-02 | 腾讯科技(深圳)有限公司 | 基于对等模式建立讨论组及该讨论组即时通信的方法 |
WO2016002367A1 (ja) * | 2014-06-30 | 2016-01-07 | 株式会社日立製作所 | 通信システム、通信方法、及び、通信プログラム |
CN105227443A (zh) * | 2015-10-20 | 2016-01-06 | 腾讯科技(深圳)有限公司 | 会话消息的同步方法、同步设备及同步系统 |
CN106202365A (zh) * | 2016-07-07 | 2016-12-07 | 帅斌鹏 | 数据库更新同步的方法、系统及数据库集群 |
Also Published As
Publication number | Publication date |
---|---|
CN108650168A (zh) | 2018-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018219178A1 (zh) | 数据同步方法、装置、服务器及存储介质 | |
EP2706719B1 (en) | File synchronization method and device | |
CN108650168B (zh) | 多人会话的成员数据获取方法和装置、存储介质、处理器 | |
EP2378718B1 (en) | Method, node and system for controlling version in distributed system | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
US20120323990A1 (en) | Efficient state reconciliation | |
CN105208058B (zh) | 基于web会话共享的信息交互系统 | |
CN104811366B (zh) | 一种网络通讯消息的漫游方法及装置 | |
CN103491055A (zh) | 一种在多个客户端间同步信息的方法、客户端和服务器 | |
CN103297529A (zh) | 基于时间戳的树型结构数据同步方法 | |
CN101771723A (zh) | 数据同步方法 | |
US20110167040A1 (en) | Method, apparatus and system for executing synchronization | |
CN108989189A (zh) | 一种基于企业微信的消息推送方法 | |
KR102020358B1 (ko) | 단말 및 그 단말에서 애플리케이션 동기화 방법 | |
CN105635215B (zh) | 联系人信息的同步方法、装置及云服务器 | |
CN107995302B (zh) | 一种数据同步的系统 | |
CN106131137A (zh) | 数据同步方法、系统及用于数据同步的用户终端和服务端 | |
CN101789963A (zh) | 数据同步系统 | |
CN110809051A (zh) | 一种业务数据的处理方法及系统 | |
CN111625323A (zh) | 分布式任务处理方法、装置、设备及计算机可读存储介质 | |
CN114301777A (zh) | 配置数据更新方法、装置、系统及非易失性存储介质 | |
CN112910595A (zh) | 一种实时通信方法及装置 | |
CN109726028A (zh) | 一种中间存储方法 | |
CN102480382B (zh) | 在话务台系统中服务大客户客户端的方法及系统 | |
CN112217712A (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 |