掌桥专利:专业的专利平台
掌桥专利
首页

实现网络投票的方法、装置和系统

文献发布时间:2023-06-19 11:21:00


实现网络投票的方法、装置和系统

技术领域

本发明涉及计算机技术领域,尤其涉及一种实现网络投票的方法、装置和系统。

背景技术

随着互联网技术的快速发展,网络投票方式克服了现场投票方式的地域限制,得到广泛应用。通常在一个网络投票活动中,有主办方和多个投票渠道方;主办方需要统计多个投票渠道方的投票数据;每个投票渠道方作为主办方的一个投票数据来源渠道,具有自己的投票人群,需要定时上报本渠道的票数,获取当前活动的总票数。

在网络投票过程中,投票数据的准确性受网络状态限制,如果网络不稳定,会导致渠道方上报票数失败,造成主办方统计总票数不准确,也会对用户投票造成一定影响。此外,网络不稳定会导致主办方与投票渠道方的投票数据同步失败,影响用户体验。

发明内容

有鉴于此,本发明实施例提供一种实现网络投票的方法、装置和系统,能够确保不会发生重复记录的情况,确保上报的投票数据准确更新,提高投票总数据的准确,以及能够实时显示给投票用户总的投票数据,降低数据的延迟,增强用户体验,提高实用性。

为实现上述目的,根据本发明实施例的第一方面,提供了一种实现网络投票的方法。

本发明实施例的实现网络投票的方法,应用于服务端,包括:基于预设连接方式与客户端建立连接,并通过建立的连接,接收所述客户端上报的第一投票数据;从所述服务端的渠道票池数据中获取所述客户端的成功投票数据,利用所述客户端的成功投票数据对所述第一投票数据进行验证,获得有效投票数据;根据所述有效投票数据,更新投票总数据,并将更新后的投票总数据返回至所述客户端。

可选地,所述第一投票数据包括:至少一个投票对象对应的第二投票数据;以及所述利用所述客户端的成功投票数据对所述第一投票数据进行验证,获得有效投票数据,包括:针对一个投票对象,按照如下方法对所述投票对象对应的第二投票数据进行验证,获得所述投票对象对应的有效投票数据:从所述客户端的成功投票数据中,获取所述投票对象对应的成功投票数据;判断所述投票对象对应的第二投票数据是否大于所述投票对象对应的成功投票数据;若是,则确认所述投票对象对应的第二投票数据为所述投票对象对应的有效投票数据。

可选地,所述投票总数据包括:所述投票对象对应的投票总数据;以及所述根据所述有效投票数据,更新投票总数据,包括:根据所述投票对象对应的成功投票数据和所述投票对象对应的有效投票数据,计算所述投票对象对应的差值投票数据;将所述投票对象对应的差值投票数据与所述投票对象对应的投票总数据进行累加,以完成对所述投票对象对应的投票总数据的更新。

可选地,在确认所述投票对象对应的第二投票数据为所述投票对象对应的有效投票数据之后,所述方法还包括:利用所述投票对象对应的有效投票数据替换所述渠道票池数据中所述投票对象对应的成功投票数据。

可选地,所述预设连接方式包括:网络通信传输协议方式和\或网络白名单设置方式。

可选地,在基于预设连接方式与客户端建立连接之后,所述方法还包括:在所述客户端初始化时,将所述投票总数据发送至所述客户端。

为实现上述目的,根据本发明实施例的第二方面,提供了一种实现网络投票的方法。

本发明实施例的一种实现网络投票的方法,应用于客户端,包括:获取投票用户投出的第三投票数据和所述客户端的渠道票池数据;将所述第三投票数据与所述客户端的渠道票池数据进行累加,得到第四投票数据;按照预设时间,将所述第四投票数据上报至服务端,接收所述服务端返回的更新后的投票总数据。

可选地,在获取投票用户投出的第三投票数据之后,所述方法还包括:将所述第三投票数据与本地总票池中的投票总数据进行累加,并将累加后的结果直接显示给所述投票用户。

可选地,在获取投票用户投出的第三投票数据之前,所述方法还包括:获取所述投票用户的权限等级,并根据所述权限等级设置所述投票用户的投票数;获取所述投票用户的已用投票数;若所述投票用户的投票数大于所述投票用户的已用投票数,则确认所述投票用户具有投票资格,获取所述投票用户投出的所述第三投票数据。

为实现上述目的,根据本发明实施例的第三方面,提供了一种实现网络投票的装置。

本发明实施例的实现网络投票的装置,设置在服务端,包括:接收单元,用于基于预设连接方式与客户端建立连接,并通过建立的连接,接收所述客户端上报的第一投票数据;验证单元,用于从所述服务端的渠道票池数据中获取所述客户端的成功投票数据,利用所述客户端的成功投票数据对所述第一投票数据进行验证,获得有效投票数据;更新单元,用于根据所述有效投票数据,更新投票总数据,并将更新后的投票总数据返回至所述客户。

可选地,所述第一投票数据包括:至少一个投票对象对应的第二投票数据;以及所述验证单元还用于:针对一个投票对象,按照如下方法对所述投票对象对应的第二投票数据进行验证,获得所述投票对象对应的有效投票数据:从所述客户端的成功投票数据中,获取所述投票对象对应的成功投票数据;判断所述投票对象对应的第二投票数据是否大于所述投票对象对应的成功投票数据;若是,则确认所述投票对象对应的第二投票数据为所述投票对象对应的有效投票数据。

可选地,所述投票总数据包括:所述投票对象对应的投票总数据;以及所述更新单元还用于:根据所述投票对象对应的成功投票数据和所述投票对象对应的有效投票数据,计算所述投票对象对应的差值投票数据;将所述投票对象对应的差值投票数据与所述投票对象对应的投票总数据进行累加,以完成对所述投票对象对应的投票总数据的更新。

可选地,所述验证单元还用于:利用所述投票对象对应的有效投票数据替换所述渠道票池数据中所述投票对象对应的成功投票数据。

可选地,所述预设连接方式包括:网络通信传输协议方式和\或网络白名单设置方式。

可选地,所述接收单元还用于:在所述客户端初始化时,将所述投票总数据发送至所述客户端。

为实现上述目的,根据本发明实施例的第四方面,提供了一种实现网络投票的装置。

本发明实施例种实现网络投票的装置,设置在客户端,包括:获取单元,用于获取投票用户投出的第三投票数据和所述客户端的渠道票池数据;累加单元,用于将所述第三投票数据与所述客户端的渠道票池数据进行累加,得到第四投票数据;上报单元,用于按照预设时间,将所述第四投票数据上报至服务端,接收所述服务端返回的更新后的投票总数据。

可选地,所述获取单元还用于:将所述第三投票数据与本地总票池中的投票总数据进行累加,并将累加后的结果直接显示给所述投票用户。

可选地,所述获取单元还用于:获取所述投票用户的权限等级,并根据所述权限等级设置所述投票用户的投票数;获取所述投票用户的已用投票数;若所述投票用户的投票数大于所述投票用户的已用投票数,则确认所述投票用户具有投票资格,获取所述投票用户投出的所述第三投票数据。

为实现上述目的,根据本发明实施例的第五方面,提供了一种实现网络投票的系统。

本发明实施例的实现网络投票的系统,包括:服务端和至少一个客户端,所述服务端基于预设连接方式与所述至少一个客户端建立连接;以及

针对一个客户端,所述服务端与所述客户端按照如下方法进行交互:所述服务端用于通过建立的连接,接收所述客户端上报的投票数据;从所述服务端的渠道票池数据中获取所述客户端的成功投票数据,利用所述客户端的成功投票数据对所述第一投票数据进行验证,获得有效投票数据;根据所述有效投票数据,更新投票总数据,并将更新后的投票总数据返回至所述客户端;所述客户端用于获取投票用户投出的第三投票数据和所述客户端的渠道票池数据;将所述第三投票数据与所述客户端的渠道票池数据进行累加,得到第四投票数据;按照预设时间,将所述第四投票数据上报至服务端,接收所述服务端返回的更新后的投票总数据。

为实现上述目的,根据本发明实施例的第六方面,提供了一种电子设备。

本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的实现网络投票的方法。

为实现上述目的,根据本发明实施例的第七方面,提供了一种计算机可读介质。

本发明实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本发明实施例的实现网络投票的方法。

上述发明中的一个实施例具有如下优点或有益效果:服务端在与客户端建立连接后,接收客户端上报的投票数据,并对客户端上报的投票数据进行有效验证,能够确保不会发生重复记录的情况,确保上报的投票数据准确更新,并且可以解决在多个客户端上报汇总时,由于网络原因,先上报后到达等其他原因导致的数据异常问题,提高投票总数据的准确;以及,为了避免网络冲突以及服务端在进行数据汇总时出现错误,客户端可以将上传数据的时间设置为不同的,从而可以解决服务端的压力问题,并且客户端可以对本地的总数据进行更新,直接将更新后的额结果显示给投票用户,从而能够实时显示给投票用户总的投票数据,降低数据的延迟,也解决了数据同步失败时,能够实时展示动态变化的客户端的投票结果数据给投票用户,增强用户体验,此外客户端针对不同投票用户设置了不同的投票数,提高了实用性。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的应用于服务端的实现网络投票的方法的主要步骤的示意图;

图2是根据本发明实施例的应用于服务端的实现网络投票的方法的主要流程的示意图;

图3是根据本发明实施例的应用于客户端的实现网络投票的方法的主要步骤的示意图;

图4是根据本发明实施例的应用于客户端的实现网络投票的方法的主要流程的示意图;

图5是根据本发明实施例的实现网络投票的系统的架构示意图;

图6是根据本发明实施例的实现网络投票的系统的结构示意图;

图7是根据本发明实施例的设置在服务端的实现网络投票的装置的主要单元的示意图;

图8是根据本发明实施例的设置在客户端的实现网络投票的装置的主要单元的示意图;

图9是本发明实施例可以应用于其中的示例性系统架构图;

图10是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在一个投票活动中,有主办方和多个投票渠道方,具体投票过程为:(1)用户登录投票渠道,看到此次投票活动当前状态,然后开始投票;(2)该投票渠道上报本渠道的当前票数;(3)主办方获取渠道的投票数,进行汇总;(4)该投票渠道获得汇总后的投票总数,并展示给用户。从投票过程可以看出,主办方与投票渠道方之间需要进行信息交互,因此投票数据的准确性受网络状态限制,如果网络不稳定,会导致渠道方上报票数失败,造成主办方统计总票数不准确,也会对用户投票造成一定影响。此外,网络不稳定会导致主办方与投票渠道方的投票数据同步失败,影响用户体验。

为了解决上述问题,本发明提供一套实现网络投票的技术方案,该方案包括应用于服务端的实现网络投票的方法和应用于客户端的实现网络投票的方法。其中,服务端相当于是投票活动中的主办方,主要用于接收投票渠道方上报的投票数据,以及对接收的投票数据进行汇总;客户端相当于是投票活动中的投票渠道方,主要负责用户投票以及上报投票数据。值得注意的是,由于投票活动中可以涉及到多个投票渠道方,因此本发明实施例中可以包括至少一个客户端,但是为了便于理解,在描述具体的实现方法时,是以一个客户端为例进行说明的。

图1是根据本发明实施例的应用于服务端的实现网络投票的方法的主要步骤的示意图。如图1所示,作为一个可参考实施例,应用于服务端的实现网络投票的方法的主要步骤可以包括:

步骤S101:基于预设连接方式与客户端建立连接,并通过建立的连接,接收客户端上报的第一投票数据;

步骤S102:从服务端的渠道票池数据中获取客户端的成功投票数据,利用客户端的成功投票数据对第一投票数据进行验证,获得有效投票数据;

步骤S103:根据有效投票数据,更新投票总数据,并将更新后的投票总数据返回至客户端。

从上述步骤S101至S103中可以看出,本发明实施例的应用于服务端的实现网络投票的方法中,首先建立服务端与客户端的连接,这样可以基于建立的连接,接收客户端上报的第一投票数据,此处的第一投票数据是指客户端上报的投票数据,也是指投票用户在该客户端对应的投票渠道投出的票务数据,为了与其他的投票数据区分开,本发明实施例中用第一投票数据描述。还需要注意的是,本发明实施例中客户端的第一投票数据是指从投票活动开始,客户端的投票数据,比如说,在网络正常并且无其他异常情况下,客户端第一次上报的投票数据为D1,第二次上报的投票数据为D2,投票数据D2中包括投票数据D1,因此客户端上报的投票数据是累加的,是该客户端开始启动后,累加的投票数据。

服务端在获取到第一投票数据之后,需要对获取到的第一投票数据进行验证,本发明实施例中利用服务端的渠道票池数据进行验证,可以得到第一投票数据中的有效投票数据。本发明实施例的服务端包括总票池和渠道票池,其中服务端的渠道票池数据可以包括服务端存储的每个客户端的成功投票数据,本发明实施例中利用成功投票数据对第一投票数据进行验证,具体的验证方法在下文会详细说明。最后,服务端利用该有效投票数据更新总票池中的投票总数据,并将更新后的投票总数据返回至该客户端。

本发明实施例的应用于服务端的实现网络投票的方法中,服务端对客户端上报的投票数据进行有效验证,能够确保不会发生重复记录的情况,确保上报的投票数据准确更新,并且可以解决在多个客户端上报汇总时,由于网络原因,先上报后到达等其他原因导致的数据异常问题,提高投票总数据的准确性。

可以看出,本发明实施例的实现网络投票的方法的前提基础是基于预设连接方式,建立服务端与客户端之间的连接。本发明实施例中,预设连接方式可以包括:网络通信传输协议方式和\或网络白名单设置方式。其中,网络通信传输协议方式可以采用http(即,超文本传输协议,是一个基于请求与响应、无状态的应用层的协议)/https(即,超文本传输安全协议,是以安全为目标的http通道,简单讲是http的安全版)接口方式,传输json(即,一种轻量级的数据交换格式)格式数据。http/https被大部分网络防火墙默认开放的端口,能够解决大部分网络状况,对于其他个别网络封闭情况,可以通过开发端口方式,实现服务端与客户端互联的问题,并且通过http/https协议能够减小网络防火墙影响,减小网络状况的影响。此外,服务端可以通过设置网络白名单(即,一种网络控制方式)方式,记录客户端的地址信息,从而建立与客户端之间的连接。

此外,还需要注意的是,在服务端与客户端建立连接之后,客户端需要启动时,也就是投票渠道方需要启动时,可以同步服务端总票池中的投票总数据,即,服务端将投票总数据发送至客户端,这样可以完成该投票渠道方的初始化,使该投票渠道方可以独立完成本渠道的用户投票活动,实现与服务端之间的低耦合,不会因为主办方和渠道方网络情况,影响用户的投票。

本发明实施例的应用于服务端的实现网络投票的方法中,重点部分是服务端对客户端上报的第一投票数据进行有效验证。服务端的渠道票池数据包括:客户端的成功投票数据,需要注意的是,此处的成功投票数据是从投票活动开始直至进行验证时,该客户端的成功投票数据;第一投票数据包括:至少一个投票对象对应的第二投票数据,此处的第二投票数据是投票对象对应的投票数据,表述成第二投票数据是为了与其他投票数据区分开。另外,投票对象是指投票活动中的选手,比如说一个投票活动中,有5个选手,那么该投票活动中的投票对象就是指这5个选手,用户可以给这5个选手投票。

作为本发明实施例的再一个可参考实施例,步骤S102可以包括:针对一个投票对象,按照如下方法对投票对象对应的第二投票数据进行验证,获得投票对象对应的有效投票数据:从客户端的成功投票数据中,获取投票对象对应的成功投票数据;判断投票对象对应的第二投票数据是否大于投票对象对应的成功投票数据;若是,则确认投票对象对应的第二投票数据为投票对象对应的有效投票数据。

考虑到第一投票数据中包括多个投票对象对应的第二投票数据,需要对每个投票对象的投票数据进行验证,因此步骤S102可以包括:针对任意一个投票对象,对该投票对象对应的第二投票数据进行验证,获得该投票对象对应的有效投票数据。例如,针对投票对象M1,验证M1的第二投票数据是否有效的方法具体实现为:从该客户端的成功投票数据中,选择出M1的对应的成功投票数据,然后判断M1对应的第二投票数据是否大于M1的对应的成功投票数据,若是,则说明M1对应的第二投票数据是有效的,将其作为M1对应的有效投票数据。

举例来说,投票活动中有投票对象E1和E2,客户端C1上报第一投票数据之前,服务端渠道票池的C1渠道票池数据中,投票对象E1和E2的票数分别为20、40,那么20和40就是C1的成功投票数据,也就是上一次C1成功上报的投票对象的票数,由于C1渠道票池数据是累加的,因此可以看作为上一次C1成功上报后的选手的票数。C1此次上报的投票对象E1和E2的票数分别为30、50,由于C1上报的数据也是累加的,因此,判断可以判断C1此次上报的投票对象的票数是否大于上一次C1成功上报的投票对象的票数,得到30大于20,50大于40,因此得到C1此次投票有效。

由于网络异常或者其他原因,可能会出现C1此次上报的投票数据小于服务端中C1的成功投票数据。比如说,C1在T1时间上报投票数据D1,在T2时间上报投票数据D2,并且T2>T1,由于网络异常或者其他原因,服务端首先收到投票数据D2,然后才收到投票数据D1,并且服务端判断D2为有效投票数据,那么投票数据D2为C1的成功投票数据,将D2与D1对比,得到D2大于D1,则说明D1为无效投票数据,那么就不需要将D1数据累加到服务端总票池的投票总数据中。举个具体的例子进行说明,客户端C1上报的投票对象E1的票数为25,投票对象E2的票数为100,服务端渠道票池的C1渠道票池数据中,投票对象E1和E2的票数分别为50、40,由于25小于50,100大于40,则说明C1此次上报的投票数据中,投票对象E1的投票数据是无效的,投票对象E2的投票数据是有效的。

本发明实施例的应用于服务端的实现网络投票的方法中,投票总数据包括:每个投票对象对应的投票总数据,在获得投票对象对应的有效投票数据之后,需要将此有效投票数据进行统计累加,具体的实现方法为:根据投票对象对应的成功投票数据和投票对象对应的有效投票数据,计算投票对象对应的差值投票数据;将投票对象对应的差值投票数据与投票对象对应的投票总数据进行累加,以完成对投票对象对应的投票总数据的更新。

为了便于理解,假设投票活动中有投票对象E1和E2,客户端C1上报第一投票数据之前,服务端渠道票池的C1渠道票池数据中,投票对象E1和E2的票数分别为20、40,那么20和40就是C1的成功投票数据。C1此次上报的投票对象E1和E2的票数分别为30、50,因此得到C1此次投票有效,计算得到E1和E2的差值数据分别为10和10。根据服务端总票池的投票总数据中E1和E2对应的投票总数据分别为1000和1200,那么更新后的E1和E2对应的投票总数据分别为1010和1210。

上文介绍了在确定投票对象对应的第二投票数据为有效数据之后,需要更新服务端的投票总数据,本发明实施例中还需要利用该有效数据替换服务端渠道票池的该客户端渠道票池数据中该投票对象对应的成功上报数据,即:利用投票对象对应的有效投票数据替换渠道票池数据中投票对象对应的成功投票数据。

假设说,投票活动中有投票对象E1和E2,客户端C1上报第一投票数据之前,服务端渠道票池的C1渠道票池数据中,投票对象E1和E2的票数分别为20、40,那么20和40就是C1的成功投票数据,C1此次上报的投票对象E1和E2的票数分别为30、50,因此得到C1此次投票有效,那么用C1此次上报的投票对象E1和E2的票数30、50分别替换服务端渠道票池的C1渠道票池数据中投票对象E1和E2的票数20、40,这样在C1下次上报投票数据时,利用30和50进行验证。

如果客户端C1上报的投票对象E1的票数为25,投票对象E2的票数为100,服务端渠道票池的C1渠道票池数据中投票对象E1和E2的票数分别为50、40,服务端总票池中投票对象E1和E2的投票总数据分别为1000和1200。由于25小于50,100大于40,则说明C1此次上报的投票数据中,投票对象E1的投票数据是无效的,投票对象E2的投票数据是有效的,则更新后的服务端总票池中投票对象E1和E2的投票总数据分别为1000和1260,并且更新后的服务端渠道票池的C1渠道票池数据中投票对象E1和E2的票数分别为50、100。

图2是根据本发明实施例的应用于服务端的实现网络投票的方法的主要流程的示意图。如图2所示,本发明实施例的应用于服务端的实现网络投票的方法的主要流程可以包括:

步骤S201:基于预设连接方式与客户端建立连接,并通过建立的连接,接收该客户端上报的第一投票数据;

步骤S202:确定服务端渠道票池中该客户端的渠道票池数据,也就是该客户端的成功投票数据;

步骤S203:针对一个投票对象,从第一投票数据中获取该投票对象对应的第二投票数据,以及从该客户端的成功投票数据中获取该投票对象对应的成功投票数据;

步骤S204:判断该投票对象对应的第二投票数据是否大于该投票对象对应的成功投票数据,若是,则执行步骤S205,若否,则执行步骤S209;

步骤S205:确认该投票对象对应的第二投票数据为该投票对象对应的有效投票数据;

步骤S206:根据该投票对象对应的成功投票数据和该投票对象对应的有效投票数据,计算该投票对象对应的差值投票数据;

步骤S207:将该投票对象对应的差值投票数据与服务端中该投票对象对应的投票总数据进行累加,以完成对该投票对象对应的投票总数据的更新;

步骤S208:利用该投票对象对应的有效投票数据替换服务端的渠道票池数据中该投票对象对应的成功投票数据;

步骤S209:判断是否已经处理该客户端上报的所有投票对象对应的第二投票数据,若是,则执行步骤S210;

步骤S210:将更新后的投票总数据返回至该客户端。

需要注意的是,在上述步骤S201中预设连接方式可以包括:网络通信传输协议方式和\或网络白名单设置方式。并且,在建立服务端与该客户端的连接之后,在该客户端初始化时,将投票总数据发送至该客户端,这样用户可以看到当前投票情况,并根据当前投票情况对投票对象进行投票。

根据本发明实施例的应用于服务端的实现网络投票的技术方案,服务端在与客户端建立连接后,接收客户端上报的投票数据,并对客户端上报的投票数据进行有效验证,能够确保不会发生重复记录的情况,确保上报的投票数据准确更新,并且可以解决在多个客户端上报汇总时,由于网络原因,先上报后到达等其他原因导致的数据异常问题,提高投票总数据的准确性。

上文详细介绍了本发明实施例中应用于服务端的实现网络投票的方法,接下来从客户端的角度,解释实现网络投票的方法。图3是根据本发明实施例的应用于客户端的实现网络投票的方法的主要步骤的示意图。如图3所示,作为另一个可参考实施例,应用于客户端的实现网络投票的方法的主要步骤可以包括:

步骤S301:获取投票用户投出的第三投票数据和客户端的渠道票池数据;

步骤S302:将第三投票数据与客户端的渠道票池数据进行累加,得到第四投票数据;

步骤S303:按照预设时间,将第四投票数据上报至服务端,接收服务端返回的更新后的投票总数据。

本发明实施例中服务端包括总票池和渠道票池,客户端包括本地总票池和本地渠道票池,其中客户端的本地渠道票池中存储该客户端的渠道票池数据,也就是该客户端的投票总数据。投票用户投出的第三投票数据是指用户此次投出的票务数据。因此,将投票用户此次的投票数据与该客户端的投票总数据进行累加,得到新的该客户端的投票总数据,即第四投票数据。最后,在预设时间,将该第四投票数据上报至服务端,并接收服务端返回的投票总数据,其中服务端返回的投票总数据是服务端对所有客户端上报的投票数据进行汇总后得到的数据。

由于本发明实施例中包括服务端和至少一个客户端,而且每个客户端均需要与服务端建立连接,因此为了避免网络冲突以及服务端在进行数据汇总时出现错误,可以将每个客户端上传数据的时间设置为不同的,从而可以解决服务端的压力问题。比如说每个客户端都是每隔5秒上报一次数据,客户端C1在第1秒上传数据,客户端C2在第9秒上传数据,客户端C3在第17秒上传数据等等。又或者是,根据每个客户端的具体情况设置上报时间,比如C1的投票用户较多,对服务端的投票总数据影响较多,设置C1每隔3秒上传一次数据,C2的投票用户较少,可以设置每隔7秒上传一次数据。

接下来,提供一个具体的例子说明上述步骤S301至步骤S303。假设说,在一次投票活动中,有投票对象E1和E2,投票用户U1通过客户端C1分别给E1和E2投2票,而且得知C1渠道票池数据中E1和E2的票数分别为20和30,则得到C1需要上报的投票数据为22和32,但是如果在C1上报数据之前,又有投票用户U2通过客户端C1分别给E1和E2投3票和1票,则得到C1需要上报的投票数据为25和33,在预设时间,没有其他投票数据了,则C1将E1和E2的投票数据25和33上报至服务端。然后,服务端对C1上报的投票数据进行处理后,将更新后的投票总数据返回至C1。需要注意的是,服务端需要对每个客户端上报的投票数据进行处理。在下文中会提供具体的例子解释此处。

由于本发明实施例应用于客户端的实现网络投票的方法中,按照预设时间将客户端的投票数据上报至服务端,然后对客户端本地总票池中的投票总数据进行更新,因此在一段时间内(即,两次上报时间的间隙内),客户端的投票总数据不会被服务端的投票总数据更新,但是为了能够实时显示给投票用户总的投票数据,降低数据的延迟,客户端会利用第三投票数据对本地总票池中的投票总数据进行更新,然后显示给投票用户。所以,本发明实施例中,应用于客户端的实现网络投票的方法还可以包括:获取本地总票池中的投票总数据;以及在获取投票用户投出的第三投票数据之后,将第三投票数据与本地总票池中的投票总数据进行累加,并将累加后的结果直接显示给投票用户。

比如说,客户端C1的本地总票池中的投票总数据为E1是100,E2是120,在投票用户U1通过客户端C1分别给E1和E2投2票之后,本地总票池中的投票总数据为E1是102,E2是122,并且E1是102以及E2是122直接显示给投票用户U1,表示投票成功。由于C1渠道票池数据中E1和E2的票数分别为20和30,所以C1在预设时间上报的投票数据为22和32,接收服务端返回的E1和E2的投票总数据202和222,服务端返回的投票总数据是所有客户端上报的最新数据的汇总,最后直接用投票总数据202和222更新C1的本地总票池中的投票总数据。

本发明实施例的应用于客户端的实现网络投票的方法中,在获取投票用户投出的第三投票数据之前,还包可以括:获取投票用户的权限等级,并根据权限等级设置投票用户的投票数;获取投票用户的已用投票数;若投票用户的投票数大于投票用户的已用投票数,则确认投票用户具有投票资格,获取投票用户投出的第三投票数据。也就是说,区分投票用户的权限级别,比如高级用户每天可以投3票,普通用户每天可以投1票,如果某用户在该客户端上参与了某活动,可以多获得10票。并且,投票用户进行投票前,要计算该投票用户是都具有投票资格,也就是判断该投票用户是否还具有剩余投票数,若有,则投票用户进行投票,客户端可以获得该投票用户的投票数据。

图4是根据本发明实施例的应用于客户端的实现网络投票的方法的主要流程的示意图。如图4所示,本发明实施例的应用于客户端的实现网络投票的方法的主要流程可以包括:

步骤S401:获取投票用户的权限等级,并根据权限等级设置投票用户的投票数;

步骤S402:获取投票用户的已用投票数;

步骤S403:判断投票用户的投票数是否大于投票用户的已用投票数,若是,则执行步骤S404:

步骤S404:确认投票用户具有投票资格;

步骤S405:获取投票用户投出的第三投票数据、客户端的渠道票池数据、本地总票池中的投票总数据;

步骤S406:将第三投票数据与本地总票池中的投票总数据进行累加,并将累加后的结果直接显示给投票用户;

步骤S407:将第三投票数据与客户端的渠道票池数据进行累加,得到第四投票数据;

步骤S408:按照预设时间,将第四投票数据上报至服务端,接收服务端返回的更新后的投票总数据;

步骤S409:利用服务端返回的投票总数据更新本地总票池中的投票总数据。

需要注意的是,上述步骤S406和步骤S407的顺序可以根据实际情况调整,比如,先执行步骤S407,然后执行步骤S406,或者同时执行步骤S406和步骤S407,对此不做限制。

根据本发明实施例的应用于客户端的实现网络投票的技术方案,为了避免网络冲突以及服务端在进行数据汇总时出现错误,可以将每个客户端上传数据的时间设置为不同的,从而可以解决服务端的压力问题。并且,客户端可以对本地的总数据进行更新,直接将更新后的额结果显示给投票用户,从而能够实时显示给投票用户总的投票数据,降低数据的延迟,也解决了数据同步失败时,能够实时展示动态变化的客户端的投票结果数据给投票用户,增强用户体验。此外,针对不同投票用户设置了不同的投票数,提高了实用性。

图5是根据本发明实施例的实现网络投票的系统的架构示意图。可以看出,本发明实施例的实现网络投票的系统可以包括服务端和至少一个客户端,服务端基于预设连接方式与至少一个客户端建立连接。其中,服务端相当于是投票活动的主办方,客户端相当一是投票活动的投票渠道方。

针对一个客户端,服务端与客户端按照如下方法进行交互:

(1)服务端可以用于通过建立的连接,接收客户端上报的投票数据;根据服务端的渠道票池数据,对客户端上报的投票数据进行验证,获得有效投票数据;根据有效投票数据,更新投票总数据,并将更新后的投票总数据返回至客户端;

(2)客户端可以用于获取投票用户投出的第三投票数据和客户端的渠道票池数据;将第三投票数据与客户端的渠道票池数据进行累加,得到第四投票数据;按照预设时间,将第四投票数据上报至服务端,接收服务端返回的更新后的投票总数据。

综上所述,服务端负责接收全部客户端上报的投票数据,并进行汇总;客户端负责接收投票用户投出的投票数据,并将投票数据进行上报。图6是根据本发明实施例的实现网络投票的系统的结构示意图。可以看出,服务端包括:通信模块、投票对象模块、汇总模块和数据库;客户端包括:通信模块、投票对象模块、领票模块、投票模块和数据库。

其中,服务端的通信模块与客户端的通信模块建立连接。客户端的通信模块通过定时启动方式,按照预设时间将本渠道投票数据上报至服务端,并且返回服务端的最新投票总数据。由于采用预设时间进行上报,完成一次更新,能够减少了服务端与客户端之间的网络通信量。并且,各个客户端设置的上报时间可以不同,能够解决服务端的压力。此外,连接方式可以为网络通信传输协议方式和\或网络白名单设置方式,上文已经详细描述,此处不再累述。

客户端需要启动时,同步服务端投票对象模块中的数据,完成本渠道的初始化,之后可以独立完成本渠道的用户投票活动过程,实现与服务端之间的低耦合,不会因为服务端和客户端网络情况,影响用户的投票。

汇总模块是服务端的一个模块,是整个投票活动的核心模块之一,主要用来汇总各个客户端上报每一位投票对象的投票数据,并且返回每一位投票对象的投票总数据,并且能够保证不会发生重复记录票数,实现上报数据准确更新。汇总模块中还包括:服务端的总票池和服务端的渠道票池。在上述实现网络投票的方法中已经具体介绍了服务端的总票池和服务端的渠道票池,以及具体的用途,此处不再累述。

领票模块是客户端中投票用户登陆领取投票数的模块。

投票模块是客户端的一个模块,也是客户端的核心模块,主要用来同步服务端的投票总数据,同步失败时也能实时展示动态变化的本渠道投票数据给投票用户,从而可以增强用户体验。此外,投票模块中包括本地总票池和本地渠道票池。在上述实现网络投票的方法中已经具体介绍了本地总票池和本地渠道票池,以及具体的用途,此处不再累述。值得注意的是,汇总模块和投票模块均采用双票池,并且双票池同步更新,可以解决数据延迟问题,提高用户体验。

投票对象模块存储当前系统中所有的选手信息,在客户端初始化时,客户端从服务端获得最新的选手信息,服务端可以配置和管理当前系统中的选手信息。

数据库用于数据库表存储各个模块的数据,包括:投票对象模块中的所有选手信息、服务端的双票池数据以及客户端的双票池数据。

本发明实施例的实现网络投票的系统包括服务端和至少一个客户端。其中,服务端在与客户端建立连接后,接收客户端上报的投票数据,并对客户端上报的投票数据进行有效验证,能够确保不会发生重复记录的情况,确保上报的投票数据准确更新,并且可以解决在多个客户端上报汇总时,由于网络原因,先上报后到达等其他原因导致的数据异常问题,提高投票总数据的准确性;客户端为了避免网络冲突以及服务端在进行数据汇总时出现错误,可以将上传数据的时间设置为不同的,从而可以解决服务端的压力问题,并且可以对本地的总数据进行更新,直接将更新后的额结果显示给投票用户,从而能够实时显示给投票用户总的投票数据,降低数据的延迟,也解决了数据同步失败时,能够实时展示动态变化的客户端的投票结果数据给投票用户,增强用户体验,此外,针对不同投票用户设置了不同的投票数,提高了实用性。

图7是根据本发明实施例的设置在服务端的实现网络投票的装置的主要单元的示意图。如图7所示,本发明实施例的设置在服务端的实现网络投票的装置700主要包括以下单元:接收单元701、验证单元702和更新单元703。

其中,接收单元701可用于基于预设连接方式与客户端建立连接,并通过建立的连接,接收客户端上报的第一投票数据;验证单元702可用于从服务端的渠道票池数据中获取客户端的成功投票数据,利用客户端的成功投票数据对第一投票数据进行验证,获得有效投票数据;更新单元703可用于根据有效投票数据,更新投票总数据,并将更新后的投票总数据返回至客户。

本发明实施例中,第一投票数据可以包括:至少一个投票对象对应的第二投票数据;以及验证单元702还可用于:针对一个投票对象,按照如下方法对投票对象对应的第二投票数据进行验证,获得投票对象对应的有效投票数据:从客户端的成功投票数据中,获取投票对象对应的成功投票数据;判断投票对象对应的第二投票数据是否大于投票对象对应的成功投票数据;若是,则确认投票对象对应的第二投票数据为投票对象对应的有效投票数据。

本发明实施例中,投票总数据包括:投票对象对应的投票总数据;以及更新单元703还可用于:根据投票对象对应的成功投票数据和投票对象对应的有效投票数据,计算投票对象对应的差值投票数据;将投票对象对应的差值投票数据与投票对象对应的投票总数据进行累加,以完成对投票对象对应的投票总数据的更新。

本发明实施例中,验证单元702还可用于:利用投票对象对应的有效投票数据替换数据存储至渠道票池数据中投票对象对应的成功投票数据。

本发明实施例中,预设连接方式可以包括:网络通信传输协议方式和\或网络白名单设置方式。

本发明实施例中,接收单元701还可用于:在客户端初始化时,将投票总数据发送至客户端。

从以上描述可以看出,本发明实施例的设置在服务端的实现网络投票的装置,在与客户端建立连接后,接收客户端上报的投票数据,并对客户端上报的投票数据进行有效验证,能够确保不会发生重复记录的情况,确保上报的投票数据准确更新,并且可以解决在多个客户端上报汇总时,由于网络原因,先上报后到达等其他原因导致的数据异常问题,提高投票总数据的准确性。

图8是根据本发明实施例的设置在客户端的实现网络投票的装置的主要单元的示意图。如图8所示,本发明实施例的设置在客户端的实现网络投票的装置800主要包括以下单元:获取单元801、累加单元802和上报单元803。

其中,获取单元801可用于获取投票用户投出的第三投票数据和客户端的渠道票池数据;累加单元802可用于将第三投票数据与客户端的渠道票池数据进行累加,得到第四投票数据;上报单元803可用于按照预设时间,将第四投票数据上报至服务端,接收服务端返回的更新后的投票总数据。

本发明实施例中,获取单元801还可用于:将第三投票数据与本地总票池中的投票总数据进行累加,并将累加后的结果直接显示给投票用户。

本发明实施例中,获取单元801还可用于:获取投票用户的权限等级,并根据权限等级设置投票用户的投票数;获取投票用户的已用投票数;若投票用户的投票数大于投票用户的已用投票数,则确认投票用户具有投票资格,获取投票用户投出的第三投票数据。

从以上描述可以看出,本发明实施例的设置在客户端的实现网络投票的装置,为了避免网络冲突以及服务端在进行数据汇总时出现错误,可以将每个客户端上传数据的时间设置为不同的,从而可以解决服务端的压力问题。并且,客户端可以对本地的总数据进行更新,直接将更新后的额结果显示给投票用户,从而能够实时显示给投票用户总的投票数据,降低数据的延迟,也解决了数据同步失败时,能够实时展示动态变化的客户端的投票结果数据给投票用户,增强用户体验。此外,针对不同投票用户设置了不同的投票数,提高了实用性。

图9示出了可以应用本发明实施例的实现网络投票的方法或实现网络投票的装置的示例性系统架构900。

如图9所示,系统架构900可以包括终端设备901、902、903,网络904和电子设备905。网络904用以在终端设备901、902、903和电子设备905之间提供通信链路的介质。网络904可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备901、902、903通过网络904与电子设备905交互,以接收或发送消息等。终端设备901、902、903上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。

终端设备901、902、903可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

电子设备905可以是提供各种服务的电子设备,例如对用户利用终端设备901、902、903所浏览的购物类网站提供支持的后台管理电子设备(仅为示例)。后台管理电子设备可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。

需要说明的是,本发明实施例所提供的实现网络投票的方法一般由电子设备905执行,相应地,实现网络投票的装置一般设置于电子设备905中。

应该理解,图9中的终端设备、网络和电子设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和电子设备。

下面参考图10,其示出了适于用来实现本发明实施例的终端设备的计算机系统1000的结构示意图。图10示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图10所示,计算机系统1000包括中央处理单元(CP8)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有系统1000操作所需的各种程序和数据。CP8 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。

以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CP8)1001执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、验证单元和更新单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“基于预设连接方式与客户端建立连接,并通过建立的连接,接收客户端上报的第一投票数据的单元”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:基于预设连接方式与客户端建立连接,并通过建立的连接,接收客户端上报的第一投票数据;从服务端的渠道票池数据中获取客户端的成功投票数据,利用客户端的成功投票数据对第一投票数据进行验证,获得有效投票数据;根据有效投票数据,更新投票总数据,并将更新后的投票总数据返回至客户端。

根据本发明实施例的应用于服务端的实现网络投票的技术方案,服务端在与客户端建立连接后,接收客户端上报的投票数据,并对客户端上报的投票数据进行有效验证,能够确保不会发生重复记录的情况,确保上报的投票数据准确更新,并且可以解决在多个客户端上报汇总时,由于网络原因,先上报后到达等其他原因导致的数据异常问题,提高投票总数据的准确。

以及,根据本发明实施例的应用于客户端的实现网络投票的技术方案,为了避免网络冲突以及服务端在进行数据汇总时出现错误,可以将每个客户端上传数据的时间设置为不同的,从而可以解决服务端的压力问题。并且,客户端可以对本地的总数据进行更新,直接将更新后的额结果显示给投票用户,从而能够实时显示给投票用户总的投票数据,降低数据的延迟,也解决了数据同步失败时,能够实时展示动态变化的客户端的投票结果数据给投票用户,增强用户体验。此外,针对不同投票用户设置了不同的投票数,提高了实用性。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 实现网络投票的方法、装置和系统
  • 用于网络投票系统的选票处理系统、方法以及装置
技术分类

06120112895634