CN111885167B - 数据同步方法、装置、电子设备及存储介质 - Google Patents
数据同步方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111885167B CN111885167B CN202010723310.1A CN202010723310A CN111885167B CN 111885167 B CN111885167 B CN 111885167B CN 202010723310 A CN202010723310 A CN 202010723310A CN 111885167 B CN111885167 B CN 111885167B
- Authority
- CN
- China
- Prior art keywords
- answer
- data
- activity
- client
- live
- 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
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
Abstract
本公开关于一种数据同步方法、装置、电子设备及存储介质,所述方法包括:向客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成;接收所述客户端针对所述通知信令发送的答题数据获取请求;根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据;将所述答题数据同步至所述客户端。本实施例实现客户端与服务器之间的数据同步,提高直播答题时的客户端数据的准确性。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种数据同步方法、装置、电子设备及存储介质。
背景技术
直播答题活动是一种依靠互联网在线答题的活动。然而在用户通过客户端参与答题过程中,可能由于服务器宕机、系统崩溃、用户误操作客户端等各种原因,导致客户端的数据和服务器的数据不同步。
因此如何在直播答题活动中保证客户端与服务器数据同步,是亟待解决的问题。
发明内容
本公开提供一种数据同步方法、装置、电子设备及存储介质,以至少解决相关技术中在如何直播答题活动中保证客户端与服务器数据同步的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据同步方法,包括:
向客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成;
接收所述客户端针对所述通知信令发送的答题数据获取请求;
根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据;
将所述答题数据同步至所述客户端。
可选地,在向所述客户端发送用于获取答题数据的通知信令之前,所述方法还包括:
获取所述客户端发送的直播开始请求,并向所述客户端发送针对所述直播开始请求的响应消息,以通知所述客户端进入所述直播答题活动。
可选地,所述方法还包括:
向所述客户端推送所述直播答题活动的活动信息;
所述活动信息包括以下一种或多种:所述直播答题活动的标识、所述直播答题活动的名称和所述直播答题活动的地址链接。
可选地,所述向所述客户端发送针对所述直播开始请求的响应消息,包括:
将所述直播开始请求放入队列中;
当表征所述服务器当前负载状况的直播开始请求的实时处理数量未达到预设处理数量阈值时,从所述队列中提取出所述直播开始请求进行处理得到对应的响应消息,并向所述客户端发送所述响应消息。
可选地,在向所述客户端发送针对所述直播开始请求的响应消息之前,所述方法还包括:
接收测试客户端发送的测试直播开始请求,并获取所述服务器的性能指标;
当所述性能指标达到预设性能指标时,统计所述测试直播开始请求的数量;
将所述测试直播开始请求的数量作为所述预设处理数量阈值。
可选地,所述性能指标包括以下一种或多种:CPU利用率和内存占用率。
可选地,所述向所述客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成,包括:
当所述直播答题活动当前所处的活动阶段为活动前阶段时,生成用于通知所述客户端获取答题数据的第一通知信令;
当所述直播答题活动当前所处的活动阶段为活动中阶段时,生成用于通知所述客户端获取包括答题状态的答题数据的第二通知信令。
可选地,所述答题数据获取请求包括用户账户以及数据请求类型,所述数据请求类型包括针对所述第一通知信令生成的第一数据请求类型,以及,包括针对所述第二通知信令生成的第二数据请求类型,所述根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据,包括:
当所述通知信令为所述第一通知信令时,获取所述用户账户和所述第一数据请求类型对应的第一答题数据;所述第一答题数据包括复活卡数据;
当所述通知信令为所述第二通知信令时,获取所述用户账户和所述第二数据请求类型对应的第二答题数据;所述第二答题数据包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案和答题状态。
可选地,所述复活卡数据包括当前可用复活卡数量,在将所述答题数据同步至所述客户端之后,所述方法还包括:
获取所述用户账户对应的所述上一题的题目数据对应的用户答案和所述上一题的题目数据对应的正确答案进行比对得到上一题比对结果;
当所述上一题比对结果为用户答案和正确答案不一致,且所述当前可用复活卡数量不为零,同时不是所述直播答题活动的最后一题时,调整所述当前可用复活卡数量,并将所述用户账户在所述直播答题活动的答题状态修改为复活状态。
可选地,在将所述答题数据同步至所述客户端之后,所述方法还包括:
当所述直播答题活动当前所处的活动阶段为活动中状态时,向所述客户端推送所述直播答题活动的题目数据;
接收所述客户端针对所述题目数据发送的用户答案;
根据所述用户答案和所述题目数据对应的正确答案得到对比结果;
根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态。
可选地,所述比对所述用户答案和所述题目数据对应的正确答案得到对比结果,包括:
当所述答题状态为淘汰状态时,拒绝执行所述比对所述用户答案和所述题目数据对应的正确答案得到对比结果的步骤。
可选地,所述根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态,包括:
当所述比对结果为所述用户答案与所述题目数据对应的正确答案一致时,将所述用户账户在所述直播答题活动的答题状态修改为正确状态;
当所述比对结果为所述用户答案与所述题目数据对应的正确答案不一致,且所述当前可用复活卡数量为零时,将所述用户账户在所述直播答题活动的答题状态修改为淘汰状态。
根据本公开实施例的第二方面,提供一种数据同步装置,应用于服务器,所述装置包括:
通知信令发送单元,被配置为执行向客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成;
答题数据获取请求接收单元,被配置为执行接收所述客户端针对所述通知信令发送的答题数据获取请求;
答题数据获取单元,被配置为执行根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据;
答题数据同步单元,被配置为执行将所述答题数据同步至所述客户端。
可选地,所述装置还包括直播答题活动进入单元,被配置为执行获取所述客户端发送的直播开始请求,并向所述客户端发送针对所述直播开始请求的响应消息,以通知所述客户端进入所述直播答题活动。
可选地,直播答题活动进入单元,还被配置为执行向所述客户端推送所述直播答题活动的活动信息;所述活动信息包括以下一种或多种:所述直播答题活动的标识、所述直播答题活动的名称和所述直播答题活动的地址链接。
可选地,所述直播答题活动进入单元,被配置为执行将所述直播开始请求放入队列中;当表征所述服务器当前负载状况的直播开始请求的实时处理数量未达到预设处理数量阈值时,从所述队列中提取出所述直播开始请求进行处理得到对应的响应消息,并向所述客户端发送所述响应消息。
可选地,所述装置还包括处理数量阈值确定单元,被配置为执行接收测试客户端发送的测试直播开始请求,并实时监测所述服务器的性能指标;当所述性能指标达到预设性能指标时,统计所述测试直播开始请求的数量;将所述测试直播开始请求的数量作为所述预设处理数量阈值。
可选地,所述性能指标包括以下一种或多种:CPU利用率和内存占用率。
可选地,所述通知信令发送单元,被配置为执行当所述直播答题活动当前所处的活动阶段为活动前阶段时,生成用于通知所述客户端获取答题数据的第一通知信令;当所述直播答题活动当前所处的活动阶段为活动中阶段时,生成用于通知所述客户端获取包括答题状态的答题数据的第二通知信令。
可选地,所述答题数据获取请求包括用户账户以及数据请求类型,所述数据请求类型包括针对所述第一通知信令生成的第一数据请求类型,以及,包括针对所述第二通知信令生成的第二数据请求类型,所述答题数据获取单元,被配置为执行当所述通知信令为所述第一通知信令时,获取所述用户账户和所述第一数据请求类型对应的第一答题数据;所述第一答题数据包括复活卡数据;当所述通知信令为所述第二通知信令时,获取所述用户账户和所述第二数据请求类型对应的第二答题数据;所述第二答题数据包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案和答题状态。
可选地,所述装置还包括:复活单元,被配置为执行获取所述用户账户对应的所述上一题的题目数据对应的用户答案和所述上一题的题目数据对应的正确答案进行比对得到上一题比对结果;当所述上一题比对结果为上一题的题目数据对应的用户答案和正确答案不一致,且所述当前可用复活卡数量不为零,同时不是所述直播答题活动的最后一题时,调整所述当前可用复活卡数量,并将所述答题状态修改为复活状态。
可选地,所述装置还包括:答题状态更新单元,被配置为执行当所述直播答题活动当前所处的活动阶段为活动中状态时,向所述客户端推送所述直播答题活动的题目数据;接收所述客户端针对所述题目数据发送的用户答案;根据所述用户答案和所述题目数据对应的正确答案得到对比结果;根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态。
可选地,所述答题状态更新单元,被配置为执行当所述比对结果为所述用户答案与所述题目数据对应的正确答案一致时,将所述用户账户在所述直播答题活动的答题状态修改为正确状态;
当所述比对结果为所述用户答案与所述题目数据对应的正确答案不一致,且所述当前可用复活卡数量为零时,将所述用户账户在所述直播答题活动的答题状态修改为淘汰状态。
可选地,所述答题状态更新单元,被配置为执行当所述答题状态为淘汰状态时,拒绝接收所述客户端发送的用户答案。
根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述第一方面所述的数据同步方法。
根据本公开实施例的第四方面,提供一种存储介质,包括:当存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述第一方面所述的数据同步方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的数据同步方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
向客户端发送用于获取答题数据的通知信令,其中通知信令为根据直播答题活动当前所处的活动阶段对应生成,然后接收客户端根据通知信令发送的答题数据获取请求,根据答题数据获取请求,获取与直播答题活动当前所处的活动阶段对应的答题数据,并将答题数据同步至客户端。本实施例在客户端进入直播答题活动后,根据直播答题活动当前所处的活动阶段生成对应的通知信令,以通知客户端从服务器获取到与直播答题活动当前所处的活动阶段生成对应的答题数据,实现客户端与服务器之间的数据同步,提高直播答题时的客户端数据的准确性,有利于提高用户参与活动的积极性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据同步方法的应用环境图。
图2是根据一示例性实施例示出的一种数据同步方法的流程图。
图3是根据一示例性实施例示出的一种直播答题活动的入口界面。
图4是根据一示例性实施例示出的一种直播答题活动的答题界面。
图5是根据一示例性实施例示出的一种队列的示意图。
图6是根据一示例性实施例示出的一种答题状态的判断示意图。
图7是根据一示例性实施例示出的一种客户端与服务器数据同步的架构示意图。
图8是根据一示例性实施例示出的一种直播答题活动的实现流程图。
图9是根据一示例性实施例示出的一种数据同步装置的框图。
图10是根据一示例性实施例示出的一种电子设备的内部结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本实施例提供的数据同步方法,可以应用于如图1所示的应用环境中。其中,客户端110通过网络与服务器120进行交互。服务器120向客户端110发送用于获取答题数据的通知信令,其中,通知信令为根据直播答题活动当前所处的活动阶段对应生成,服务器120接收客户端110根据通知信令发送的答题数据获取请求,服务器120根据答题数据获取请求,获取与直播答题活动当前所处的活动阶段对应的答题数据,并将答题数据同步至客户端110。其中,客户端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
图2是根据一示例性实施例示出的一种数据同步方法的流程图,如图2所示,数据同步方法用于服务器120中,包括以下步骤。
在步骤S210中,向客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成。
其中,答题数据包括答题状态,答题状态能够用于反映当前客户端的用户参与直播答题活动所处的状态,具体可以包括淘汰状态,复活状态和正确状态,淘汰状态表示答题错误,不能继续参与直播答题活动的答题仅能进行观战或者选择退出,正确状态表示答题正确,可以继续参与直播答题活动的答题,复活状态表示答题错误后选择复活后设置为复活状态,并且可以继续参与直播答题活动的答题。
其中,答题数据还可以包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案等。
其中,复活卡数据包括了当前复活卡可用数量,表示可以选择复活几次。具体地,当前可用复活卡数量是指的在一场直播答题活动中某一次答题时允许使用复活卡的数量,并且复活卡数据还可以包括当前剩余复活卡数量,即整场直播答题活动允许使用的复活卡数量。举例来说,直播答题活动中每次答题只能使用2张复活卡(可以设置但是答题过程中不能改),而用户可能通过邀请好友得到了10张复活卡,但是这次答题该用户只能使用2张复活卡。
为了增加用户使用软件(例如直播社交平台)的频率,经常在软件中进行直播答题活动,每天可以进行2-3场的直播答题活动,同时设置丰厚的奖金。举例来说,每场直播答题活动预先设定奖金(如100w),直播时出12道题目,12道题目全部回答正确的人(如10w人),就能瓜分当期奖金(如100w)。如图3是一种直播答题活动的入口界面,通过入口界面进入直播答题活动后可以参与答题,图4是一种直播答题活动中的答题页面,该时刻正在公布题目数据对应的正确答案。可以理解,通过这种方式容易吸引不少用户参与活动,增加用户与软件之间的互动。
正常情况下客户端与服务器之间的答题数据是同步的,但由于服务器宕机、系统崩溃、用户误操作退出等各种原因,可能导致客户端与服务器之间答题数据不同步,或者直接退出直播答题活动。针对用户误操作退出的问题,目前的处理方式是弹出一个提示框,提示如果退出便无法继续答题,通过退出前弹框提示的方式,避免了重新进入直播答题活动,需要获取服务器中对应的答题数据到客户端本地的过程,也避免了客户端与服务器答题数据不同步问题,但是用户也有可能存在反应过慢而直接退出的问题,或者在服务器宕机、系统崩溃时,仍然存在客户端与服务器答题数据不同步问题。虽然服务器可以保存已答的题目数据和对应的用户答案,但是由于已答的题目数据和对应的用户答案无法反映出答题进度,因此在退出直播答题活动后将无法继续参与答题,用户体验非常糟糕。
在不同直播答题活动当前所处的活动阶段所对应的答题数据是不同的,因此本实施例针对数据不同步的问题,提出在客户端进入直播答题活动后,服务器可以根据直播答题活动当前所处的活动阶段对应生成对应的通知信令,以通知客户端获取到直播答题活动当前所处的活动阶段对应的答题数据。
本实施例的服务器包括LCS(Long Connection Service,长链接服务)系统,LCS系统将下发通知信令给客户端执行。LCS系统在客户端和服务器之间建立一个Socket通道,传输的通知信令通过protobuf协议处理,以二进制的形式传输给客户端,客户端通过protobuf协议解析出通知信令并执行通知信令。
在步骤S212中,接收所述客户端针对所述通知信令发送的答题数据获取请求。
客户端接收到通知信令后,将根据通知信令生成对应的答题数据获取请求,并根据通知信令中的拉流地址发送答题数据获取请求,以去请求直播答题活动的答题数据。其中,由于通知信令为根据直播答题活动当前所处的活动阶段对应生成,因此根据通知信令生成的答题数据获取请求,可以向服务器请求该直播答题活动当前所处的活动阶段对应的答题数据。
在步骤S214中,根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据。
其中,直播答题活动当前所处的活动阶段包括活动中阶段和活动前阶段,活动中阶段是指的正在参与答题,活动前阶段是指的尚未开始答题。当服务器接收到客户端发送的答题数据获取请求后,将获取与直播答题活动当前所处的活动阶段对应的答题数据。
在步骤S216中,将所述答题数据同步至所述客户端。
服务器得到答题数据后,将答题数据发送至客户端,以实现服务器和客户端之间的答题数据同步。其中,由于本实施例的答题数据包括了能够反映客户端的用户当前参与直播答题活动的答题状态,故在服务器宕机、系统崩溃、用户误操作退出等各种情况下,可以向服务器重新请求答题数据并同步,能够保证客户端的用户正常参与直播答题活动。
其中,服务器向客户端发送通知信令,可以是服务器按照一定时间间隔自动向客户端发送,这种方式能够保证在因为某些故障原因而导致的客户端与服务器数据不同步的问题,对于客户端用户而言是无感知的。此外,也可以客户端的用户发现退出直播答题活动后,自动向服务器发送同步请求,服务器则可以根据当前活动阶段生成对应的通知信令,以通知客户端获取当前所处的活动阶段对应的答题数据实现数据同步。
上述数据同步方法中,向客户端发送用于获取答题数据的通知信令,其中通知信令为根据直播答题活动当前所处的活动阶段对应生成,然后接收客户端根据通知信令发送的答题数据获取请求,根据答题数据获取请求,获取与直播答题活动当前所处的活动阶段对应的答题数据,并将答题数据同步至客户端。本实施例在客户端进入直播答题活动后,根据直播答题活动当前所处的活动阶段生成对应的通知信令,以通知客户端从服务器获取到与直播答题活动当前所处的活动阶段生成对应的答题数据,实现客户端与服务器之间的数据同步,提高直播答题时的客户端数据的准确性,有利于提高用户参与活动的积极性。
在一示例性实施例中,在步骤S210,在向所述客户端发送用于获取答题数据的通知信令之前,所述方法还包括:
向所述客户端推送所述直播答题活动的活动信息;
获取所述客户端通过所述活动信息发送的直播开始请求,并向所述客户端发送针对所述直播开始请求的响应消息,以通知所述客户端进入所述直播答题活动。
其中,活动信息包括以下一种或多种:直播答题活动的标识、直播答题活动的名称和直播答题活动的地址链接。
在具体实现中,服务器可以向客户端推送直播答题活动的活动信息,并将活动信息通过软件的界面展示给客户端的用户,比如,假设活动信息中直播答题活动的名称“爱心答题活动”,直播答题活动的标识为“0001”,则可以将直播答题活动的名称“爱心答题活动”和直播答题活动的标识为“0001”展示在客户端的页面,如果客户端的用户想要加入该直播答题活动参与答题,则可以根据活动信息中的地址链接,获取答题数据以进入直播答题活动。
上述示例性实施例中,通过向多个客户端推送活动信息,使得多个客户端可以加入到直播答题活动中,以实现直播答题活动的推广。
在一示例性实施例中,所述服务器包括用于表征当前负载状况的直播开始请求的实时处理数量,所述向所述客户端发送针对所述直播开始请求的响应消息,包括:
将所述直播开始请求放入队列中;
当所述实时处理数量未达到预设处理数量阈值时,从所述队列中提取出所述直播开始请求进行处理得到对应的响应消息,并向所述客户端发送所述响应消息。
为了吸引更多的用户参与直播答题活动,直播答题活动通常设置了丰厚奖金,比如在一些大型直播社交平台上,一场直播答题活动的奖金可以达到100w-200w,参与用户的人数则可能达到50w-500w。为了避免错过活动,通常用户会在开始答题的1分钟之内通过客户端进入直播间或者聊天室等虚拟空间(下文为了便于说明以直播间为例)以参与直播答题活动,带来的问题是进入直播间获取直播答题活动中答题数据的直播开始请求的数量很大,通常能够达到百万数量级,同时进入直播答题活动的时间很集中,而巨大且集中的流量很容易造成服务器的宕机、系统崩溃,不能保证所有用户正常参与活动,可能导致经济等各种方面的损失。
目前一种处理方式是在业务上打散处理客户端的直播开始请求,具体地,在答题开始的时候(比如晚上9点场次的直播答题活动,将会在9点开始答题),这个时候有很多用户通过客户端请求进入图3的直播答题活动的入口界面,此时系统为了限制客户端的统一进入,弹出一个验证码弹框,需要用户按照验证码弹框的提示填写验证码,在填写成功才能进入直播答题活动参与答题,达到打散请求的效果。但是,考虑到在进入直播答题活动时还需要填写验证码,虽然在业务上打散直播开始请求的处理可以避免巨大且集中的请求量,可是对于用户来说,快速的进入直播答题活动才是最优体验,目前这种多次验证码的填写将会打击用户参与答题的积极性,不利于直播答题活动的推广。
本实施例为了解决百万数量级客户端同时进入直播间的场景下服务器的稳定性,在大量客户端将发送直播开始请求来请求进入直播间参与活动时,根据服务器当前负载状况来通知客户端获取答题数据,而不是同时处理大量的客户端请求,从而能够保证服务器稳定、不宕机,确保所有用户的正常参与活动。
具体地,本实施例的服务器维护有用于表征当前负载状况的直播开始请求的实时处理数量,并设置有预设处理数量阈值,其中预设处理数量阈值为服务器允许同时处理的最大量的直播开始请求。
服务器将根据实时处理数量和预设处理数量阈值来处理客户端发送的直播开始请求,如果实时处理数量小于预设处理数量阈值,则可以从队列中提取出直播开始请求进行处理得到响应消息并发送至客户端,告知客户端可以去获取直播数据;如果实时处理数量等于预设处理数量阈值,则需要等待,并在等待到实时处理数量小于预设处理数量阈值时,才能从队列中提取出直播开始请求进行处理得到响应消息并发送至客户端,以告知客户端可以去获取直播数据。
具体地,本实施例的服务器包括RSS(Request Scheduling System,请求调度系统),在RSS系统中维护有用于表征当前负载状况的直播开始请求的实时处理数量,RSS系统通过一个队列来管理客户端发送的直播开始请求,当客户端的一个直播开始请求发送到服务器时,服务器的RSS系统的处理队列增加一个直播开始请求,如果实时处理数量没有超过预设处理数量阈值,则提取出队列头部的一个直播开始请求进行处理,这时候服务器的实时处理数量加1,当处理完一个直播开始请求时候,实时处理数量减1。
如图5所示,队列是一个类似于排队的数据结构,新进入队列的直播开始请求会放在队尾(如an),出队列的直播开始请求是来自于队头(如a1)。在RSS中根据客户端发送直播开始请求时间,按序在服务器排成一个队列,当服务器实时处理数量没有超过预设处理数量阈值时,会从队头依次取出直播开始请求进行处理。
例如,当服务器接收到客户端发送的一个直播开始请求时,根据此刻服务器的当前负载状况来确定是否现在处理,假设服务器的预设处理数量阈值是100,正在处理直播开始请求(实时处理数量)有80个,如果这个时候又接收到40个直播开始请求,那么服务器仅优先处理其中的20个直播开始请求,剩下的20个直播开始请求在队列中排队,当完成一个直播开始请求后就会从队列中取出一个直播开始请求进行处理,始终保持实时处理数量不高于预设处理数量阈值,即不超过预设处理数量阈值100,以至于服务器不会因为同时处理太多直播开始请求而导致系统崩溃或者宕机,提高服务器运行的健壮性。
在一示例性实施例中,在向所述客户端发送针对所述直播开始请求的响应消息之前,所述方法还包括:
接收测试客户端不断发送的测试直播开始请求,并实时监测所述服务器的性能指标;
当所述性能指标达到预设性能指标时,统计所述测试直播开始请求的数量;
将所述测试直播开始请求的数量作为所述预设处理数量阈值。
其中,预设处理数量阈值可以通过压力测试获得。具体地,测试客户端不断的制造直播开始请求并发送至服务器,并实时监测服务器的性能指标,其中性能指标包括以下一种或多种:CPU利用率和内存占用率。当性能指标达到预设性能指标时,统计此时测试直播开始请求的数量,并将测试直播开始请求的数量作为预设处理数量阈值。比如,当监测到服务器的CPU利用率和内存占用率达到80%,则可以将目前统计到的测试直播开始请求的数量作为预设处理数量阈值。通过压力测试可以得到服务器能够同时正常处理客户端的直播开始请求的数量,在不给服务器造成过大压力同时还能够保证一定的请求处理数量。
在一示例性实施例中,在步骤S216,在将所述答题数据同步至所述客户端之后,所述方法还包括:
当所述直播答题活动当前所处的活动阶段为活动中状态时,向所述客户端推送所述直播答题活动的题目数据;
接收所述客户端针对所述题目数据发送的用户答案;
根据所述用户答案和所述题目数据对应的正确答案得到对比结果;
根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态。
当服务器将答题数据同步至客户端后,客户端可以根据答题数据中的答题状态确定当前的参与直播答题活动的进度,具体可以包括是否可以继续参加答题,其中,如果是答题状态是正确状态和复活状态可以继续答题,淘汰状态则不可以继续答题仅允许观战。
本实施例针对客户端与服务器的数据不同步的问题,提出客户端可以重新从服务器获取到答题数据,其中由于答题数据包括了答题状态,因此本实施例的客户端接收后可以根据答题状态确定用户参与活动的进度,是否被允许继续参与答题。此外,答题数据还包括了上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案等数据,因此通过这些数据可以更加直观让用户知晓自己的答题进度,进一步提高了用户体验。
本实施例的服务器包括LQS(Live Quiz Service,直播答题服务),是服务器为直播答题活动提供的一套服务,负责管理用户通过客户端上传的用户答案、答题状态、以及需要下发的题目数据等等。
假设8点半答题直播间开播,客户端发送直播开始请求以进入直播间参与活动,直播答题活动的开始时间是9点,因此9点直播间的主持人开始上场直播,然后用户等待主持人直播串场的时候,导播会在后台控制开始答题,此时直播答题活动当前所处的活动阶段为活动中状态,主持人念题的时候,导播在后台操控将题目数据发送至客户端,客户端将收到题目数据(包括题目和题目选项)并展示对应的题目弹框,在用户点击弹框答题之后客户端会将用户答案上传到服务器,服务器将根据用户答案和正确答案的比对结果来更新答题状态。
在一示例性实施例中,所述根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态,包括:
获取所述用户账户对应的所述上一题的题目数据对应的用户答案和所述上一题的题目数据对应的正确答案进行比对得到上一题比对结果;
当所述上一题比对结果为上一题的题目数据对应的用户答案和所述上一题的题目数据对应的正确答案不一致,且所述当前可用复活卡数量不为零,同时不是所述直播答题活动的最后一题时,调整所述当前可用复活卡数量,并将所述用户账户在所述直播答题活动的答题状态修改为复活状态。
本实施例中,在客户端与服务器之间同步答题数据后,就可以继续正常参与直播答题活动,比如接收来自服务器的题目数据,以及上传针对题目数据的用户答案等等,不会由于曾经数据不同步而导致无法继续答题的问题。
其中,服务器LQS系统接收到用户答案后将跟题目数据对应的正确答案进行比对,并且根据比对结果更新用户账户的答题状态。具体地,如果对比结果为用户答案和正确答案一致,则说明用户答对,记录答题状态为正确状态,将被允许参与下一次答题;如果对比结果为用户答案和正确答案不一致,则说明用户答错,如果当前可用复活卡数量不为零则记录答题状态为复活状态,将被允许参与下一次答题,如果当前可用复活卡数量为零则记录答题状态为淘汰状态,将被禁止参与下一次答题。
需要注意的是,如果当前可用复活卡数量不为零但是目前已经是本次直播答题活动的最后一题,那么即使当前可用复活卡数量不为零也不会复活,也不需要将答题状态记录为复活状态,将记录答题状态为淘汰状态。
在一示例性实施例中,当所述用户账户的答题状态为淘汰状态时,拒绝接收所述客户端发送的用户答案。用户将不能再答题。
如果客户端上传的上一题的题目数据的用户答案是错误的,并且当前可用复活卡数量为零,答题状态记录为淘汰状态表示答题淘汰,那么用户将不能继续参与这次答题只能观战,服务器可以拒绝接收用户答案或者拒绝执行比对题目数据和正确答案的步骤。这样即使用户因为误操作退出直播间,之后可以重新从服务器获取到答题状态,恢复用户退出直播间前的答题状态,从而可以使得客户端的用户继续答题或者观战。
在一示例性实施例中,所述向所述客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成,包括:
当所述直播答题活动当前所处的活动阶段为活动前阶段时,生成用于通知所述客户端获取包括复活卡数据的答题数据的第一通知信令;
当所述直播答题活动当前所处的活动阶段为活动中阶段时,生成用于通知所述客户端获取包括答题状态和复活卡数据的答题数据的第二通知信令。
本实施例根据直播答题活动的当前所处的活动阶段为活动前阶段来对应生成用于通知客户端获取答题数据的通知信令,其中,直播答题活动的当前所处的活动阶段包括活动前阶段和活动中阶段。例如,假设用户通过客户端8点半进入直播间等待直播答题活动,此时为活动前阶段,9点时主持人会进入直播间,这个时候导播会在后台操作开始准备推送题目数据至客户端,等主持人念题的时候,导播会发送题目数据,表示进入答题答题环节,此时为活动中阶段。
可以理解,在活动前阶段用户并未开始答题,因此如果直播答题活动当前所处的活动阶段为活动前阶段,则可以生成用于通知客户端获取包括复活卡数据的答题数据的第一通知信令,此时的答题数据中可以不包括答题状态,如果直播答题活动当前所处的活动阶段为活动中阶段,则可以生成用于通知客户端获取包括答题状态的答题数据的通知信令。
在一示例性实施例中,所述答题数据获取请求包括用户账户以及数据请求类型,所述数据请求类型包括针对所述第一通知信令生成的第一数据请求类型,以及,包括针对所述第二通知信令生成的第二数据请求类型,所述根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据,包括:
当所述通知信令为所述第一通知信令时,获取所述用户账户和所述第一数据请求类型对应的第一答题数据;所述第一答题数据包括复活卡数据;
当所述通知信令为所述第二通知信令时,获取所述用户账户和所述第二数据请求类型对应的第二答题数据;所述第二答题数据包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案和答题状态。
在活动前阶段还没有开始答题,所以客户端获取的答题数据只有复活卡数据,其中复活卡数据包括复活卡和当前复活卡可用数量(次数),因为在活动中阶段已经开始答题,所以获取的答题数据包括了答题状态和复活卡数据,其中复活卡数据包括复活卡和当前复活卡可用数量。不同场次的直播答题活动允许使用的复活卡次数不同,比如有的场次一场允许用2张复活卡,题目难度高的场次可以允许用4张复活卡。
在用户答题过程中将通过客户端上传用户答案,LQS根据用户答案与服务器的正确答案、当前复活卡可用数量共同计算出用户的答题状态并保留在服务器LQS系统中。如果这时用户无操作退出直播间再重新进入,客户端重新可以重新从服务器获取答题数据。
其中,第一数据请求类型表示请求的答题数据的内容包括复活卡数据,第二数据请求类型表示请求的答题数据的内容包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案和答题状态。
具体的,如果在答题前阶段,会发送一条获取答题数据的第一通知信令给客户端,服务器收到答题数据获取请求,LQS查询根据答题数据获取请中的用户账户和第一数据请求类型获取第一答题数据然后发送客户端,客户端收到的第二答题数据有复活卡数据(当前剩余复活卡数量、当前复活卡可用数量)。如果当前正在答题阶段,会发送一条获取答题数据的第二通知信令给客户端,服务器收到答题数据获取请求,LQS查询根据答题数据获取请中的用户账户和第二数据请求类型获取第二答题数据然后发送客户端。客户端收到的第二答题数据有复活卡数据(当前剩余复活卡数量、当前复活卡可用数量)、上一题的题目数据(题号、题目正确答案、题目选项)、上一题的用户答案,答题状态(复活状态、淘汰状态和正确状态)。根据返回的答题数据,如果用户上一题答案正确(用户的答案和题目正确答案一致)或者复活状态,那么允许继续答题;如果上一题用户答案错误(用户的答案和题目正确答案不一致),那么不允许继续答题,只能观战。这样即使用户因为误操作退出直播间,但是回来之后会根据答题数据,恢复用户退出直播间前的状态,使得用户能够继续答题或者观战。
本实施例在不同活动阶段将提示客户端获取该活动阶段对应的答题数据,使得在不同活动阶段,客户端与服务器之间的答题数据都是同步的。
在一示例性实施例中,所述复活卡数据包括当前可用复活卡数量,在将所述答题数据同步至所述客户端之后,所述方法还包括:
获取所述用户账户对应的所述上一题的题目数据对应的用户答案和所述上一题的题目数据对应的正确答案进行比对得到上一题比对结果;
当上一题的题目数据对应的用户答案和正确答案不一致,且所述当前可用复活卡数量不为零,同时不是所述直播答题活动的最后一题时,调整所述当前可用复活卡数量,并将所述用户账户在所述直播答题或的答题状态修改为复活状态。
其中,复活卡数据包括当前可用复活卡数量,也即是本次答题复活卡可用数量(比如只有两张复活卡可以复活两次)。参照图6,如果用户答案正确,则记作正确状态,如果用户答案错误,并且本次答题的当前可用复活卡数量不为零且不是本次直播答题活动的最后一题则可以触发复活,当前可用复活卡数量减一,并记做复活状态;如果用户答案错误,并且本次答题的当前可用复活卡数量为零或者虽然当前可用复活卡数量不为零但是已经是本次直播答题活动最后一题,则记做淘汰状态。
为了使本领域技术人员深入理解本实施例,下面采用具体实例进行说明,参照图7,所示为一种客户端与服务器数据同步的架构示意图,其中,服务器包括RSS系统,LCS系统和LQS系统,实现客户端与服务器数据同步的过程为:
1,客户端向服务器发送直播开始请求;
2,RSS系统根据当前负载状况(实时处理数量)确定是否处理该直播开始请求,具体地,如果实时处理数量小于预设处理量阈值,则通知LCS提醒客户端拉取答题数据,如果实时处理数量已经达到预设处理量阈值,则等待实时处理数量降低后再通知LCS提醒客户端获取答题数据;
3,LCS系统与客户端建立长连接,并向客户端发送用于获取答题数据的通知信令;
4,如果是在直播答题活动的活动前阶段,则LCS将向客户端获取复活卡数据的第二通知信令,客户端则根据该通知信令发送获取包括复活卡数据的答题数据的答题数据获取请求;如果是在直播答题活动的活动中阶段,则LCS将向客户端发送复活卡数据和答题状态的第一通知信令,客户端则根据该通知信令获取到包括复活卡数据和答题状态的答题数据的答题数据获取请求;
5,LQS根据客户端所请求的答题数据,向客户端发生对应的答题数据,并且如果是在活动中阶段,即使不小心退出直播间,客户端也根据答题状态确定是否可以继续参与答题。
参照图8,所示为一种直播答题活动的实现流程图,包括主播客户端,观众客户端和服务器,其中实现过程包括:
1,主播客户端向服务器发送开通直播间请求,以开启直播答题活动;服务器则针对开通直播间请求向主播客户端发送响应消息,通知主播客户端开通直播间;
2,观众客户端向服务器发送直播开始请求(startplay),服务器针对直播开始请求发送响应消息,观众客户端根据响应消息中的拉流地址,向服务器发送进入直播间进入信令(CSEnterRoom),服务器针对直播间进入信令发送响应消息,观众客户端进入直播间;
3,服务器与客户端建立长连接;在直播答题活动未开始之前,服务器可以向观众客户端发送更新复活卡数量的通知信令;观众客户端可以根据该通知信令生成答题数据获取请求,以向服务器请求包括复活卡数量的答题数据;
4,在直播答题活动开始后,观众客户端可以开始向服务器发送用户答案,服务器将根据正确答案和用户答案的比对结果,更新答题状态;
5,在直播答题活动开始后,服务器可以向观众客户端发送更新答题状态的通知信令;观众客户端可以根据该通知信令生成答题数据获取请求,以向服务器请求包括复活卡数据和答题状态的答题数据。
应用本实施例,解决在百万数量级客户端同时答题的场景下服务器的稳定性,保证了所有用户的正常答题体验,并且提供服务器和客户端的数据同步解决方案,使得即使客户端退出直播间重新进入的情况下仍然能够正常答题,此外,也可以继续正常观看主持人在直播答题活动过程中直播录制的直播视频(video)等,保证了用户的体验。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图9是根据一示例性实施例示出的一种数据同步装置框图。参照图9,该装置包括通知信令发送单元910,答题数据获取请求接收单元912,答题数据获取单元914和答题数据同步单元916。
通知信令发送单元910,被配置为执行向客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成;
答题数据获取请求接收单元912,被配置为执行接收所述客户端针对所述通知信令发送的答题数据获取请求;
答题数据获取单元914,被配置为执行根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据;
答题数据同步单元916,被配置为执行将所述答题数据同步至所述客户端。
在一示例性实施例中,所述装置还包括直播答题活动进入单元,被配置为执行获取所述客户端发送的直播开始请求,并向所述客户端发送针对所述直播开始请求的响应消息,以通知所述客户端进入所述直播答题活动。
在一示例性实施例中,所述直播答题活动进入单元,还被配置为执行向所述客户端推送所述直播答题活动的活动信息;所述活动信息包括以下一种或多种:所述直播答题活动的标识、所述直播答题活动的名称和所述直播答题活动的地址链接。
在一示例性实施例中,所述直播答题活动进入单元,被配置为执行将所述直播开始请求放入队列中;当表征所述服务器当前负载状况的直播开始请求的实时处理数量实时处理数量未达到预设处理数量阈值时,从所述队列中提取出所述直播开始请求进行处理得到对应的响应消息,并向所述客户端发送所述响应消息。
在一示例性实施例中,所述性能指标包括以下一种或多种:CPU利用率和内存占用率。
在一示例性实施例中,所述装置还包括处理数量阈值确定单元,被配置为执行接收测试客户端不断发送的测试直播开始请求,并实时监测所述服务器的性能指标;当所述性能指标达到预设性能指标时,统计所述测试直播开始请求的数量;将所述测试直播开始请求的数量作为所述预设处理数量阈值。
在一示例性实施例中,所述通知信令发送单元910,被配置为执行当所述直播答题活动当前所处的活动阶段为活动前阶段时,生成用于通知所述客户端获取答题数据的第一通知信令;当所述直播答题活动当前所处的活动阶段为活动中阶段时,生成用于通知所述客户端获取包括答题状态的答题数据的第二通知信令。
在一示例性实施例中,所述答题数据获取请求包括用户账户以及数据请求类型,所述数据请求类型包括针对所述第一通知信令生成的第一数据请求类型,以及,包括针对所述第二通知信令生成的第二数据请求类型,所述答题数据获取单元914,被配置为执行当所述通知信令为所述第一通知信令时,获取所述用户账户和所述第一数据请求类型对应的第一答题数据;所述第一答题数据包括复活卡数据;当所述通知信令为所述第二通知信令时,获取所述用户账户和所述第二数据请求类型对应的第二答题数据;所述第二答题数据包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案和答题状态。
在一示例性实施例中,所述装置还包括:复活单元,被配置为执行获取所述用户账户对应的所述上一题的题目数据对应的用户答案和所述上一题的题目数据对应的正确答案进行比对得到上一题比对结果;当所述上一题比对结果为上一题的题目数据对应的用户答案和正确答案不一致,且所述当前可用复活卡数量不为零,同时不是所述直播答题活动的最后一题时,调整所述当前可用复活卡数量并将所述答题状态修改为复活状态。
在一示例性实施例中,所述装置还包括:答题状态更新单元,被配置为执行当所述直播答题活动当前所处的活动阶段为活动中状态时,向所述客户端推送所述直播答题活动的题目数据;接收所述客户端针对所述题目数据发送的用户答案;比对所述用户答案和所述题目数据对应的正确答案得到对比结果;根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态。
在一示例性实施例中,所述答题状态更新单元,被配置为执行当所述答题状态为淘汰状态时,拒绝执行所述比对所述用户答案和所述题目数据对应的正确答案得到对比结果的步骤。
在一示例性实施例中,所述答题状态更新单元,被配置为执行当所述比对结果为所述用户答案与所述题目数据对应的正确答案一致时,将所述用户账户在所述直播答题活动的答题状态修改为正确状态;当所述比对结果为所述用户答案与所述题目数据对应的正确答案不一致时,将所述用户账户在所述直播答题活动的答题状态修改为淘汰状态。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图10是根据一示例性实施例示出的一种用于数据同步的设备1000的框图。例如,设备1000可以为一服务器。参照图10,设备1000包括处理组件1020,其进一步包括一个或多个处理器,以及由存储器1022所代表的存储器资源,用于存储可由处理组件1020的执行的指令,例如应用程序。存储器1022中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1020被配置为执行指令,以执行上述数据同步方法。
设备1000还可以包括一个电源组件1024被配置为执行设备1000的电源管理,一个有线或无线网络接口1026被配置为将设备1000连接到网络,和一个输入输出(I/O)接口1029。设备1000可以操作基于存储在存储器1022的操作系统,例如Windows Server,Mac OSX,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器1022,上述指令可由设备1000的处理器执行以完成上述数据同步的方法。存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (26)
1.一种数据同步方法,其特征在于,所述方法包括:
向客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成;所述活动阶段包括活动前阶段和活动中阶段中的一种,且不同活动阶段对应生成的通知信令不同;
接收所述客户端针对所述通知信令发送的答题数据获取请求;
根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据;所述答题数据包括针对所述活动前阶段的复活卡数据,或者针对所述活动中阶段的答题状态和复活卡数据;
将所述答题数据同步至所述客户端。
2.根据权利要求1所述的数据同步方法,其特征在于,在所述向客户端发送用于获取答题数据的通知信令之前,所述方法还包括:
获取所述客户端的直播开始请求;
向所述客户端发送针对所述直播开始请求的响应消息,以通知所述客户端进入所述直播答题活动。
3.根据权利要求2所述的数据同步方法,其特征在于,所述获取所述客户端的直播开始请求之前,还包括:向所述客户端推送所述直播答题活动的活动信息;
所述活动信息包括以下一种或多种:所述直播答题活动的标识、所述直播答题活动的名称和所述直播答题活动的地址链接。
4.根据权利要求2所述的数据同步方法,其特征在于,所述向所述客户端发送针对所述直播开始请求的响应消息,包括:
将所述直播开始请求放入队列中;
当表征服务器当前负载状况的直播开始请求的实时处理数量未达到预设处理数量阈值时,从所述队列中提取出所述直播开始请求进行处理得到对应的响应消息,并向所述客户端发送所述响应消息。
5.根据权利要求4所述的数据同步方法,其特征在于,在向所述客户端发送针对所述直播开始请求的响应消息之前,所述方法还包括:
接收测试客户端发送的测试直播开始请求,并获取所述服务器的性能指标;
当所述性能指标达到预设性能指标时,统计所述测试直播开始请求的数量;
将所述测试直播开始请求的数量作为所述预设处理数量阈值。
6.根据权利要求5所述的数据同步方法,其特征在于,所述性能指标包括以下一种或多种:CPU利用率和内存占用率。
7.根据权利要求1所述的数据同步方法,其特征在于,所述向客户端发送用于获取答题数据的通知信令,包括:
当所述直播答题活动当前所处的活动阶段为活动前阶段时,生成用于通知所述客户端获取答题数据的第一通知信令;
当所述直播答题活动当前所处的活动阶段为活动中阶段时,生成用于通知所述客户端获取包括答题状态的答题数据的第二通知信令。
8.根据权利要求7所述的数据同步方法,其特征在于,所述答题数据获取请求中包括用户账户以及数据请求类型,所述数据请求类型包括针对所述第一通知信令生成的第一数据请求类型,以及,包括针对所述第二通知信令生成的第二数据请求类型,所述根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据,包括:
当所述通知信令为所述第一通知信令时,获取与所述用户账户和所述第一数据请求类型对应的第一答题数据;所述第一答题数据包括复活卡数据;
当所述通知信令为所述第二通知信令时,获取与所述用户账户和所述第二数据请求类型对应的第二答题数据;所述第二答题数据包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案和答题状态。
9.根据权利要求8所述的数据同步方法,其特征在于,所述复活卡数据包括当前可用复活卡数量,在将所述答题数据同步至所述客户端之前,所述方法还包括:
获取所述用户账户对应的所述上一题的题目数据的用户答案和所述上一题的题目数据的正确答案,进行比对得到上一题比对结果;
当所述上一题比对结果为用户答案和正确答案不一致,且所述当前可用复活卡数量不为零,同时不是所述直播答题活动的最后一题时,调整所述当前可用复活卡数量,并将所述用户账户在所述直播答题活动的答题状态修改为复活状态。
10.根据权利要求8所述的数据同步方法,其特征在于,在将所述答题数据同步至所述客户端之后,所述方法还包括:
当所述直播答题活动当前所处的活动阶段为活动中状态时,向所述客户端推送所述直播答题活动的题目数据;
接收所述客户端针对所述题目数据发送的用户答案;
根据所述用户答案和所述题目数据对应的正确答案得到比对结果;
根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态。
11.根据权利要求10所述的数据同步方法,其特征在于,所述根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态,包括:
当所述比对结果为所述用户答案与所述题目数据对应的正确答案一致时,将所述用户账户在所述直播答题活动的答题状态修改为正确状态;
当所述比对结果为所述用户答案与所述题目数据对应的正确答案不一致,且当前可用复活卡数量为零时,将所述用户账户在所述直播答题活动的答题状态修改为淘汰状态。
12.根据权利要求11所述的数据同步方法,其特征在于,所述根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态之后,还包括:
当所述答题状态为淘汰状态时,拒绝接收所述客户端发送的用户答案。
13.一种数据同步装置,其特征在于,所述装置包括:
通知信令发送单元,被配置为执行向客户端发送用于获取答题数据的通知信令;所述通知信令为根据直播答题活动当前所处的活动阶段对应生成;所述活动阶段包括活动前阶段和活动中阶段中的一种,且不同活动阶段对应生成的通知信令不同;
答题数据获取请求接收单元,被配置为执行接收所述客户端针对所述通知信令发送的答题数据获取请求;
答题数据获取单元,被配置为执行根据所述答题数据获取请求,获取与所述直播答题活动当前所处的活动阶段对应的答题数据;所述答题数据包括针对所述活动前阶段的复活卡数据,或者针对所述活动中阶段的答题状态和复活卡数据;
答题数据同步单元,被配置为执行将所述答题数据同步至所述客户端。
14.根据权利要求13所述的数据同步装置,其特征在于,所述装置还包括直播答题活动进入单元,被配置为执行:获取所述客户端发送的直播开始请求,并向所述客户端发送针对所述直播开始请求的响应消息,以通知所述客户端进入所述直播答题活动。
15.根据权利要求14所述的数据同步装置,其特征在于,所述直播答题活动进入单元,还被配置为执行:向所述客户端推送所述直播答题活动的活动信息;所述活动信息包括以下一种或多种:所述直播答题活动的标识、所述直播答题活动的名称和所述直播答题活动的地址链接。
16.根据权利要求14所述的数据同步装置,其特征在于,所述直播答题活动进入单元,被配置为执行将所述直播开始请求放入队列中;当表征服务器当前负载状况的直播开始请求的实时处理数量未达到预设处理数量阈值时,从所述队列中提取出所述直播开始请求进行处理得到对应的响应消息,并向所述客户端发送所述响应消息。
17.根据权利要求16所述的数据同步装置,其特征在于,所述装置还包括处理数量阈值确定单元,被配置为执行接收测试客户端发送的测试直播开始请求,并获取所述服务器的性能指标;当所述性能指标达到预设性能指标时,统计所述测试直播开始请求的数量;将所述测试直播开始请求的数量作为所述预设处理数量阈值。
18.根据权利要求17所述的数据同步装置,其特征在于,所述性能指标包括以下一种或多种:CPU利用率和内存占用率。
19.根据权利要求13所述的数据同步装置,其特征在于,所述通知信令发送单元,被配置为执行当所述直播答题活动当前所处的活动阶段为活动前阶段时,生成用于通知所述客户端获取答题数据的第一通知信令;当所述直播答题活动当前所处的活动阶段为活动中阶段时,生成用于通知所述客户端获取包括答题状态的答题数据的第二通知信令。
20.根据权利要求19所述的数据同步装置,其特征在于,所述答题数据获取请求中包括用户账户以及数据请求类型,所述数据请求类型包括针对所述第一通知信令生成的第一数据请求类型,以及,包括针对所述第二通知信令生成的第二数据请求类型;
所述答题数据获取单元,被配置为执行:
当所述通知信令为所述第一通知信令时,获取与所述用户账户和所述第一数据请求类型对应的第一答题数据;所述第一答题数据包括复活卡数据;
当所述通知信令为所述第二通知信令时,获取与所述用户账户和所述第二数据请求类型对应的第二答题数据;所述第二答题数据包括复活卡数据,上一题的题目数据,上一题的题目数据对应的正确答案,上一题的题目数据对应的用户答案和答题状态。
21.根据权利要求20所述的数据同步装置,其特征在于,所述装置还包括复活单元,被配置为执行:
获取所述用户账户对应的所述上一题的题目数据的用户答案和所述上一题的题目数据的正确答案,进行比对得到上一题比对结果;当所述上一题比对结果为用户答案和正确答案不一致,且当前可用复活卡数量不为零,同时不是所述直播答题活动的最后一题时,调整所述当前可用复活卡数量,并将所述用户账户在所述直播答题活动的答题状态修改为复活状态。
22.根据权利要求20所述的数据同步装置,其特征在于,所述装置还包括答题状态更新单元,被配置为执行:
当所述直播答题活动当前所处的活动阶段为活动中状态时,向所述客户端推送所述直播答题活动的题目数据;接收所述客户端针对所述题目数据发送的用户答案;根据所述用户答案和所述题目数据对应的正确答案得到比对结果;根据所述比对结果更新所述用户账户在所述直播答题活动的答题状态。
23.根据权利要求22所述的数据同步装置,其特征在于,所述答题状态更新单元,还被配置为执行:当所述比对结果为所述用户答案与所述题目数据对应的正确答案一致时,将所述用户账户在所述直播答题活动的答题状态修改为正确状态;
当所述比对结果为所述用户答案与所述题目数据对应的正确答案不一致,且当前可用复活卡数量为零时,将所述用户账户在所述直播答题活动的答题状态修改为淘汰状态。
24.根据权利要求22所述的数据同步装置,其特征在于,所述答题状态更新单元,还被配置为执行:当所述答题状态为淘汰状态时,拒绝接收所述客户端发送的用户答案。
25.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至12中任一项所述的数据同步方法。
26.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至12中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010723310.1A CN111885167B (zh) | 2020-07-24 | 2020-07-24 | 数据同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010723310.1A CN111885167B (zh) | 2020-07-24 | 2020-07-24 | 数据同步方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111885167A CN111885167A (zh) | 2020-11-03 |
CN111885167B true CN111885167B (zh) | 2023-10-13 |
Family
ID=73200483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010723310.1A Active CN111885167B (zh) | 2020-07-24 | 2020-07-24 | 数据同步方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111885167B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527990B (zh) * | 2020-12-16 | 2022-12-23 | 酷得少年(天津)文化传播有限公司 | 一种用于直播的互动答题方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102422292A (zh) * | 2009-05-05 | 2012-04-18 | 微软公司 | 具有共享游戏体验的大规模多玩家游戏 |
US8858313B1 (en) * | 2010-01-25 | 2014-10-14 | Topspin Networks, Inc. | Methods, systems, and devices for synchronized parallel gameplay |
CN108132812A (zh) * | 2017-12-21 | 2018-06-08 | 维沃移动通信有限公司 | 一种数据同步方法、移动终端及服务器 |
CN108200480A (zh) * | 2018-02-07 | 2018-06-22 | 广州市千钧网络科技有限公司 | 一种游戏直播互动方法、相关设备及系统 |
CN109714622A (zh) * | 2018-11-15 | 2019-05-03 | 北京奇艺世纪科技有限公司 | 一种视频数据处理方法、装置及电子设备 |
CN110460864A (zh) * | 2019-07-16 | 2019-11-15 | 仲恺农业工程学院 | 一种提高在线直播授课画质的方法 |
CN110545452A (zh) * | 2018-05-28 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 网络直播方法、装置、终端及服务器 |
CN110866847A (zh) * | 2019-09-29 | 2020-03-06 | 许配显 | 一种基于联网游戏辅助教学运营管理方法 |
-
2020
- 2020-07-24 CN CN202010723310.1A patent/CN111885167B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102422292A (zh) * | 2009-05-05 | 2012-04-18 | 微软公司 | 具有共享游戏体验的大规模多玩家游戏 |
US8858313B1 (en) * | 2010-01-25 | 2014-10-14 | Topspin Networks, Inc. | Methods, systems, and devices for synchronized parallel gameplay |
CN108132812A (zh) * | 2017-12-21 | 2018-06-08 | 维沃移动通信有限公司 | 一种数据同步方法、移动终端及服务器 |
CN108200480A (zh) * | 2018-02-07 | 2018-06-22 | 广州市千钧网络科技有限公司 | 一种游戏直播互动方法、相关设备及系统 |
CN110545452A (zh) * | 2018-05-28 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 网络直播方法、装置、终端及服务器 |
CN109714622A (zh) * | 2018-11-15 | 2019-05-03 | 北京奇艺世纪科技有限公司 | 一种视频数据处理方法、装置及电子设备 |
CN110460864A (zh) * | 2019-07-16 | 2019-11-15 | 仲恺农业工程学院 | 一种提高在线直播授课画质的方法 |
CN110866847A (zh) * | 2019-09-29 | 2020-03-06 | 许配显 | 一种基于联网游戏辅助教学运营管理方法 |
Non-Patent Citations (2)
Title |
---|
blog.csdn.net/weixin_46186962/article/details/104368246.直播答题技术大揭秘.《CSDN》.2020,全文. * |
Xiang Wu.Data Synchnization for integration systems based on message digest.《2010 International Conference onEducation and Information1 Technology》.2010,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111885167A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540868B (zh) | Hls直播的处理方法、装置、服务器、终端及存储介质 | |
CN111246308B (zh) | 访问直播间的方法及装置、直播服务器、存储介质 | |
US8386609B2 (en) | Reconnection to and migration of electronic collaboration sessions | |
CN109547511B (zh) | 一种web消息实时推送方法、服务器、客户端及系统 | |
CN112752114B (zh) | 直播回放互动消息的生成方法、装置、服务器及存储介质 | |
CN108965907B (zh) | 用于播放视频的方法、装置和系统 | |
CN105933375B (zh) | 一种连麦会话的监测方法、装置和服务器 | |
CN106161219A (zh) | 消息处理方法及装置 | |
CN111787345B (zh) | 基于网络直播间的互动资源处理方法、装置、服务器及存储介质 | |
CN112057846B (zh) | 云游戏服务调度的交互方法、装置、设备和存储介质 | |
CN113518247A (zh) | 视频播放方法、相关设备及计算机可读存储介质 | |
CN111625353B (zh) | 虚拟资源分发处理方法、装置、服务器及存储介质 | |
CN110351569B (zh) | 一种直播内容处理方法、装置、设备及介质 | |
CN111246238A (zh) | 直播方法、装置、存储介质及直播系统 | |
CN108174267A (zh) | 直播中互动信息的发送装置、方法及计算机可读存储介质 | |
CN111885167B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
US20220021715A1 (en) | Live streaming method and apparatus, device and computer readable storage medium | |
EP3754998A1 (en) | Streaming media quality monitoring method and system | |
CN105898596B (zh) | 直播间显示控制方法及装置 | |
CN108668140B (zh) | 音视频交互状态同步方法及装置 | |
CN113099247B (zh) | 虚拟资源处理方法、装置、服务器、存储介质及程序产品 | |
EP4002860A1 (en) | Method and device for processing public event by means of key distribution, and set top box | |
CN109348242B (zh) | 网络直播调度方法、装置、介质及电子设备 | |
CN112653859A (zh) | 在线交易录像方法及装置 | |
CN114885219B (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 |