CN112769715B - 资源分配方法、装置、电子设备和存储介质 - Google Patents
资源分配方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112769715B CN112769715B CN202011627846.XA CN202011627846A CN112769715B CN 112769715 B CN112769715 B CN 112769715B CN 202011627846 A CN202011627846 A CN 202011627846A CN 112769715 B CN112769715 B CN 112769715B
- Authority
- CN
- China
- Prior art keywords
- event
- account
- client
- information
- access
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/801—Real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/808—User-type aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本公开关于资源分配方法、装置、电子设备和存储介质,应用于登录有用户账号的客户端,包括:从服务端获取事件信息和权限信息,该事件信息包括待分配资源所对应资源分配事件的事件标识,权限信息用于表征客户端对应的账号是否有针对资源分配事件的访问权限;展示资源分配事件对应的访问入口控件,并在检测到访问入口控件被触发的情况下,判断上述权限信息:若权限信息表明账号无访问权限,则展示针对待分配资源的获取失败消息;否则发起事件访问请求,以及,接收并展示服务端返回的资源分配结果,该事件访问请求中包含事件标识和用户账号的账号标识。本方案能够有效降低服务端的峰值压力,并一定程度上提升用户对于资源分配事件的参与体验。
Description
技术领域
本公开涉及资源分配领域,尤其涉及一种资源分配方法、装置、电子设备和存储介质。
背景技术
现阶段,常采用抢红包、秒杀等资源分配方式分配数量有限的网络资源,使用这类分配方式时,服务端通常会在短时间内接收到客户端提交的多个资源获取请求。而短时间内接收到的大量资源获取请求会为服务端带来较大的处理压力,甚至导致服务端崩溃,从而降低系统稳定性。
为保证系统稳定性,相关技术中通常采用分散请求的方式进行处理。以海量用户抢红包为例:预先在红包开抢时刻之后设置缓冲时间段,从而任一用户点击开抢按钮后,并不立即向服务端发送红包获取请求,而是在上述缓冲时间段内的任一时刻再发送该请求。因为各个用户实际发送请求的时刻均处于上述缓冲时间段内,所以服务端将要接收到的海量红包获取请求会被分散在该该时间段内接收,从而有效降低了服务端接收请求的峰值压力,能够避免服务端崩溃。
然而在该方案中,参与抢红包的用户在点击开抢按钮后需要等待较长时间才能获知抢红包的结果,因此用户体验较差;而且,虽然能够将服务端接收到的红包获取请求分散在缓冲时间段内接收,但在请求数量过多的情况下,仍然难以有效降低峰值压力,例如,在百万请求场景下,即便设置10s的缓冲时间段且采用均分算法,服务端每秒仍将接收到高达10万的请求,因此服务器峰值压力仍然较大。而为降低峰值压力设置更长的缓冲时间段,又会导致用户等待时间更长,进一步影响用户体验。
发明内容
本公开提供了资源分配方法、装置、电子设备和存储介质,以至少解决相关技术中的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提出一种资源分配方法,应用于客户端,包括:
获取事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征所述客户端对应的账号是否具有针对所述资源分配事件的访问权限;
展示所述资源分配事件对应的访问入口控件,并在检测到所述访问入口控件被触发的情况下,判断所述权限信息:
若所述权限信息表明所述账号无所述访问权限,则展示针对所述待分配资源的获取失败消息;
若所述权限信息表明所述账号有所述访问权限,则发起事件访问请求,以及,接收并展示为所述账号分配所述待分配资源的资源分配结果,所述事件访问请求中包含所述事件标识和所述账号的账号标识。
可选的,所述事件信息还包括入口开放时刻,所述展示所述资源分配事件对应的访问入口控件,包括:
在所述入口开放时刻到达前,隐藏所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件;
在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
可选的,所述获取权限信息,包括:
在所述入口开放时刻到达前,向服务端发送权限获取请求,所述权限获取请求中包含所述事件标识和所述账号的账号标识;
接收所述服务端响应于所述权限获取请求返回的权限信息。
可选的,所述事件信息还包括位于所述入口开放时刻之前的第一时刻和第二时刻,所述向服务端发送权限获取请求,包括:
随机确定位于所述第一时刻和所述第二时刻之间的第三时刻,并在所述第三时刻到达时,向服务端发送权限获取请求。
可选的,还包括:
接收所述服务端响应于所述权限获取请求返回的令牌信息;
将所述令牌信息包含在所述事件访问请求中发送至所述服务端,所述令牌信息用于确定所述资源分配结果。
可选的,所述客户端包括直播节目对应的观众客户端或主播客户端,所述服务端包括所述直播节目对应的直播服务端,所述待分配资源的资源提供方包括下述至少之一:
所述观众客户端对应的观众用户、所述主播客户端对应的主播用户、所述直播节目的赞助机构、所述直播节目对应的官方机构。
可选的,所述待分配资源包括下述至少之一:虚拟币、虚拟优惠券、预定权限、虚拟礼物。
根据本公开实施例的第二方面,提出一种资源分配方法,应用于服务端,包括:
确定资源分配事件的事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征客户端对应的目标账号是否具有针对所述资源分配事件的访问权限;
将所述事件信息和权限信息发送至所述客户端,用于由所述客户端在检测到所述资源分配事件的访问入口控件被触发,且所述权限信息表明所述目标账号无所述访问权限的情况下,展示针对所述待分配资源的获取失败消息;
响应于所述客户端发送的事件访问请求,确定为所述目标账号分配所述待分配资源的资源分配结果,并将所述资源分配结果返回至所述客户端用于展示,所述事件访问请求包含所述事件标识和所述目标账号的目标账号标识,由所述客户端在检测到所述访问入口控件被触发,且所述权限信息表明所述目标账号有所述访问权限的情况下发送。
可选的,还包括:
确定所述资源分配事件对应的入口开放时刻;
将所述入口开放时刻包含在所述事件信息中发送至所述客户端,所述入口开放时刻用于由所述客户端在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件,并由所述客户端在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
可选的,所述确定资源分配事件的权限信息,包括:
确定资源分配事件对应的备选账号;
按照预设规则从所述备选账号中选取预设数量的账号,并利用被选取的账号的账号标识创建权限账号名单;
响应于客户端发送的包含目标账号标识的所述权限获取请求,在所述权限账号名单中查询所述目标账号标识,根据查询结果确定所述资源分配事件的权限信息。
可选的,所述权限账号名单包括无权账号名单和/或有权账号名单,所述根据查询结果确定所述资源分配事件的权限信息,包括:
若所述无权账号名单中存在所述目标账号标识,和/或所述有权账号名单中不存在所述目标账号标识,则确定所述目标账号无所述访问权限;
若所述有权账号名单中存在所述目标账号标识,和/或所述无权账号名单中不存在所述目标账号标识,则确定所述目标账号有所述访问权限;
根据所述目标账号是否有所述访问权限的确定结果,生成所述资源分配事件的权限信息。
可选的,还包括:
确定位于所述入口开放时刻之前的第一时刻和第二时刻;
将所述第一时刻和第二时刻包含在所述事件信息中返回至所述客户端,所述第一时刻和第二时刻用于由所述客户端确定所述权限获取请求的发送时机。
可选的,还包括:
根据从所述权限获取请求中提取的目标账号标识确定所述目标账号,并向所述客户端返回针对所述目标账号的令牌信息;
在接收到所述客户端发送的包含所述令牌消息的事件访问请求后,根据所述令牌信息对所述目标账号进行身份验证,并在验证通过的情况下确定所述资源分配结果。
可选的,所述预设规则包括下述之一:
随机选取、按照预设数量间隔选取、按照账号类型选取。
可选的,所述服务端与所述客户端之间通过长连接服务实现数据传输。
根据本公开实施例的第三方面,提出一种资源分配装置,应用于客户端,包括:
信息获取单元,被配置为获取事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征所述客户端对应的账号是否具有针对所述资源分配事件的访问权限;
展示及判断单元,被配置为展示所述资源分配事件对应的访问入口控件,并在检测到所述访问入口控件被触发的情况下,判断所述权限信息:
失败展示单元,被配置为若所述权限信息表明所述账号无所述访问权限,则展示针对所述待分配资源的获取失败消息;
资源请求单元,被配置为若所述权限信息表明所述账号有所述访问权限,则发起事件访问请求,以及,接收并展示为所述账号分配所述待分配资源的资源分配结果,所述事件访问请求中包含所述事件标识和所述账号的账号标识。
可选的,所述事件信息还包括入口开放时刻,所述展示及判断单元还被配置为:
在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件;
在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
可选的,所述信息获取单元还被配置为:
在所述入口开放时刻到达前,向服务端发送权限获取请求,所述权限获取请求中包含所述事件标识和所述账号的账号标识;
接收所述服务端响应于所述权限获取请求返回的权限信息。
可选的,所述事件信息还包括位于所述入口开放时刻之前的第一时刻和第二时刻,所述信息获取单元还被配置为:
随机确定位于所述第一时刻和所述第二时刻之间的第三时刻,并在所述第三时刻到达时,向服务端发送权限获取请求。
可选的,还包括:
令牌接收单元,被配置为接收所述服务端响应于所述权限获取请求返回的令牌信息;
令牌发送单元,被配置为将所述令牌信息包含在所述事件访问请求中发送至所述服务端,所述令牌信息用于确定所述资源分配结果。
可选的,所述客户端包括直播节目对应的观众客户端或主播客户端,所述服务端包括所述直播节目对应的直播服务端,所述待分配资源的资源提供方包括下述至少之一:
所述观众客户端对应的观众用户、所述主播客户端对应的主播用户、所述直播节目的赞助机构、所述直播节目对应的官方机构。
可选的,所述待分配资源包括下述至少之一:虚拟币、虚拟优惠券、预定权限、虚拟礼物。
根据本公开实施例的第四方面,提出一种资源分配装置,应用于服务端,包括:
信息确定单元,被配置为确定资源分配事件的事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征客户端对应的目标账号是否有针对所述资源分配事件的访问权限;
信息发送单元,被配置为将所述事件信息和权限信息发送至所述客户端,用于由所述客户端在检测到所述资源分配事件的访问入口控件被触发,且所述权限信息表明所述目标账号无所述访问权限的情况下,展示针对所述待分配资源的获取失败消息;
资源分配单元,被配置为响应于所述客户端发送的事件访问请求,确定为所述目标账号分配所述待分配资源的资源分配结果,并将所述资源分配结果返回至所述客户端用于展示;所述事件访问请求包含所述事件标识和所述目标账号的目标账号标识,由所述客户端在检测到所述访问入口控件被触发,且所述权限信息表明所述目标账号有所述访问权限的情况下发送。
可选的,还包括:
开放时刻确定单元,被配置为确定所述资源分配事件对应的入口开放时刻;
开放时刻发送单元,被配置为将所述入口开放时刻包含在所述事件信息中发送至所述客户端,所述入口开放时刻用于由所述客户端在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件,并由所述客户端在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
可选的,所述信息确定单元还被配置为:
确定资源分配事件对应的备选账号;
按照预设规则从所述备选账号中选取预设数量的账号,并利用被选取的账号的账号标识创建权限账号名单;
响应于客户端发送的包含目标账号标识的所述权限获取请求,在所述权限账号名单中查询所述目标账号标识,根据查询结果确定所述资源分配事件的权限信息。
可选的,所述权限账号名单包括无权账号名单和/或有权账号名单,所述信息确定单元还被配置为:
若所述无权账号名单中存在所述目标账号标识、和/或所述有权账号名单中不存在所述目标账号标识,则确定所述目标账号无所述访问权限;
若所述有权账号名单中存在所述目标账号标识、和/或所述无权账号名单中不存在所述目标账号标识,则确定所述目标账号有所述访问权限;
根据所述目标账号是否有所述访问权限的确定结果,生成所述资源分配事件的权限信息。
可选的,还包括:
时刻确定单元,被配置为确定位于所述入口开放时刻之前的第一时刻和第二时刻;
时刻返回单元,被配置为将所述第一时刻和第二时刻包含在所述事件信息中返回至所述客户端,所述第一时刻和第二时刻用于由所述客户端确定所述权限获取请求的发送时机。
可选的,还包括:
令牌返回单元,被配置为根据从所述权限获取请求中提取的目标账号标识确定所述目标账号,并向所述客户端返回针对所述目标账号的令牌信息;
身份验证单元,被配置为在接收到所述客户端发送的包含所述令牌消息的事件访问请求后,根据所述令牌信息对所述目标账号进行身份验证,并在验证通过的情况下确定所述资源分配结果。
可选的,所述预设规则包括下述之一:
随机选取、按照预设数量间隔选取、按照账号类型选取。
可选的,所述服务端与所述客户端之间通过长连接服务实现数据传输。
根据本公开实施例的第五方面,提出一种客户端,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第一方面中任一实施例所述的资源分配方法。
根据本公开实施例的第六方面,提出一种服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述第二方面中任一实施例所述的资源分配方法。
根据本公开实施例的第七方面,提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述第一方面或第二方面中任一实施例所述的资源分配方法。
根据本公开实施例的第八方面,提供一种计算机程序产品,包括计算机程序和/或指令,所述计算机程序和/或指令被处理器执行时实现上述第一方面或第二方面中任一实施例所述的资源分配方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
根据本公开的实施例,服务端预先确定各个客户端对应的账号对于资源分配事件的访问权限,并由客户端在用户触发资源分配事件对应的访问入口控件之前,从服务端获取相应的权限信息,从而客户端可以在用户触发之后立即确定自身所对应账号是否具有针对资源分配事件的访问权限,进而在账号无该权限时直接向用户展示相应的获取失败信息,而仅在账号有该权限时才会向服务端发送事件访问请求以请求获取待分配资源。可见,因为只有具有访问权限的账号所对应的客户端才会向服务端发送事件访问请求,所以大大减少了服务端实际接收到的事件访问请求的数量,从而即便存在海量用户也能够有效降低服务端的峰值压力。而且,通过服务端预先向客户端下发权限信息,使得不具有访问权限的大量账号在用户触发访问入口控件后能够立即显示出相应的获取失败消息(如未抢到红包),而具有访问权限的账号在用户触发访问入口控件后不必等待随机时长即可直接向服务端发送事件访问请求,进而尽快接收并展示相应的资源分配结果(如未抢到红包,或者抢到红包的大小等),可见,全部客户端均能够尽快向用户展示相应的资源分配结果,从而有效提升了参与资源分配事件的用户的参与体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是一示例性实施例提供的一种资源分配系统的架构示意图;
图2是根据本公开的实施例示出的一种资源分配方法的流程图;
图3是根据本公开的实施例示出的另一种资源分配方法的流程图;
图4是根据本公开的实施例示出的一种资源分配方法的交互流程图;
图5-图8是根据本公开的多个实施例示出的抢红包过程的多种客户端界面示意图;
图9是根据本公开的实施例示出的一种资源分配装置的示意框图;
图10是根据本公开的实施例示出的另一种资源分配装置的示意框图;
图11是根据本公开的实施例示出的一种电子设备的结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
现阶段,常采用抢红包、秒杀等资源分配方式分配数量有限的网络资源,使用这类分配方式时,服务端通常会在短时间内接收到客户端提交的多个资源获取请求。而短时间内接收到的大量资源获取请求会为服务端带来较大的处理压力,甚至导致服务端崩溃,从而降低系统稳定性。
为保证系统稳定性,相关技术中通常采用分散请求的方式进行处理。以直播场景下海量用户抢红包为例:预先在红包开抢时刻之后设置缓冲时间段,从而任一用户点击开抢按钮后,并不立即向服务端发送红包获取请求,而是在上述缓冲时间段内的任一时刻再发送该请求。因为各个用户实际发送请求的时刻均处于上述缓冲时间段内,所以服务端将要接收到的海量红包获取请求会被分散在该该时间段内接收,从而有效降低了服务端接收请求的峰值压力,能够避免服务端崩溃。
然而在该方案中,参与抢红包的用户在点击开抢按钮后需要等待较长时间才能获知抢红包的结果,因此用户体验较差;而且,虽然能够将服务端接收到的红包获取请求分散在缓冲时间段内接收,但在请求数量过多的情况下,仍然难以有效降低峰值压力,例如,在百万请求场景下,即便设置10s的缓冲时间段且采用均分算法,服务端每秒仍将接收到高达10万的请求,因此服务器峰值压力仍然较大。反之,若为了降低峰值压力设置更长的缓冲时间段,又会导致用户等待时间更长,从而进一步影响用户体验。
为解决上述问题,本公开提出一种资源分配方法,由服务端预先确定各个客户端对应的账号对于资源分配事件的访问权限,并由客户端在用户触发资源分配事件对应的访问入口控件之前,从服务端获取相应的权限信息,从而客户端可以在用户触发之后立即确定自身所对应账号是否具有针对资源分配事件的访问权限,若无该权限则直接向用户展示获取失败信息,而仅在有该权限时才向服务端发送事件访问请求以请求获取待分配资源。该方案不仅能够大大减少服务端实际接收到的请求数量,从而降低服务端的请求处理压力特别是峰值压力;也能够减少从用户触发访问入口控件到客户端展示资源分配结果之间的时长,从而减少用户的等待时长,有效提升用户体验。
图1是一示例性实施例提供的一种资源分配系统的架构示意图。如图1所示,该系统可以包括网络10、服务器11、若干电子设备,比如手机12、手机12和手机14等。
服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器或云服务器。在运行过程中,服务器11可以运行某一应用的服务器侧的程序,以实现该应用的相关业务功能,比如当该服务器11运行直播平台的程序时,可以实现为该直播平台的服务端,在该直播平台为用户提供直播节目的过程中,观众用户、主播用户、节目赞助商、平台官方等均可作为待分配资源的提供方,在本说明书一个或多个实施例的技术方案中,可由服务器11通过与手机12-14上运行的客户端进行配合,实现直播过程中的资源分配方案。又比如当该服务器11运行即时通讯(Instant Messaging,IM)平台的程序时,可以实现为该即时通讯平台的服务端,在该即时通讯平台为用户群组提供会话服务的过程中,任一会话参与方均可作为待分配资源的提供方,从而可由服务器11通过与手机12-14上运行的客户端进行配合,实现即时通讯过程中的资源分配方案。当然,上述服务器11与手机12-14还可以实现为其他形式的资源分配系统对应的服务端和客户端,不再赘述。
在本实施例中,资源分配系统不仅可以实现资源分配功能,还可以作为诸多其他功能的集成化功能平台,比如配置并传输红包数据、展示红包挂件、确定权限账号名单、检测用户触发操作、计算资源分配结果、展示资源分配结果等,本说明书一个或多个实施例并不对此进行限制。
手机12-14只是用户可以使用的一种类型的电子设备。实际上,用户显然还可以使用诸如下述类型的电子设备:平板设备、笔记本电脑、掌上电脑(PDAs,Personal DigitalAssistants)、可穿戴设备(如智能眼镜、智能手表等)等,本公开的一个或多个实施例并不对此进行限制。在运行过程中,该电子设备可以运行某一应用的客户端侧的程序,以实现该应用的相关业务功能,比如当该电子设备运行直播平台的程序时,可以实现为该直播平台的客户端,例如手机12可以实现主播客户端,手机13和手机14可以实现观众客户端。又比如当该电子设备运行即时通讯平台的程序时,可以实现为该即时通讯平台的客户端,例如手机12、手机13和手机14可以实现为即时通讯平台中某用户群组中各个用户对应的用户客户端,不再赘述。
需要指出的是:直播平台或即时通讯平台的客户端的应用程序可以被预先安装在电子设备上,使得该客户端可以在该电子设备上被启动并运行;当然,当采用诸如HTML5技术的在线“客户端”时,无需在电子设备上安装相应的应用程序,即可获得并运行该客户端。
而对于手机12-14与服务器11之间进行交互的网络10,可以包括多种类型的有线或无线网络。
图2是本说明书一示例性实施例示出的一种资源分配方法的流程图。如图2所示,该方法应用于客户端,可以包括以下步骤:
步骤202,获取事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征所述客户端对应的账号是否具有针对所述资源分配事件的访问权限。
步骤204,展示所述资源分配事件对应的访问入口控件,并在检测到所述访问入口控件被触发的情况下,判断所述权限信息。
在本实施例中,资源提供方可以向服务端指定待分配资源的资源数量、分配规则、分配入口控件开放时刻等资源信息,进而服务端可以根据该资源信息创建资源分配事件,并为该资源分配事件分配相应的事件标识。以用户U发放虚拟币红包为例,用户U可以通过自身所使用的客户端向服务端指定红包中待分配的虚拟币总量、红包个数、虚拟币分配规则、开抢时刻等红包信息,服务端接收到上述红包信息后创建相应的待抢红包,并为该待抢红包分配红包标识。
在一实施例中,服务端可以在创建资源分配事件后,确定该事件对应的备选账号,然后按照预设规则从备选账号中选取预设数量的账号,并利用被选取的账号的账号标识创建权限账号名单。其中,上述备选账号可以为服务端所对应的客户端中处于登录状态的用户账号,或者也可以为服务端预先为客户端分配的临时账号,本公开实施例并不对此进行限制。但是需要说明的是,在临时账号具有针对资源分配之间的访问请求的情况下,临时账号对应的客户端需要使用已注册的用户账号向服务端请求获取待分配资源,以避免临时账号被黑产利用,保证资源分配的有效性,保障待分配资源提供方的权益。
例如在直播场景下,服务端在直播节目中创建待分配红包后,可以将进入该直播节目的直播间的全部观众用户账号确定为待分配红包的备选账号;或者,在客户端未登录已注册的用户账号即进入该直播间(即以游客身份观看直播节目)的情况下,服务端可以为该客户端分配针对该直播间的临时账号,此时服务端可以将进入直播间的全部客户端对应的已注册的用户账号和上述临时账号,均确定为备选账号。又或者在即时通讯场景下,服务端在会话群组中创建待分配红包后,可以将该会话群组中的全部用户账号或红包发起方指定的用户账号确定为待分配红包的备选账号,本公开实施例并不对此进行限制。然后可以从上述备选账号中选取部分账号,并使用这部分账号的账号标识创建权限账号名单。该权限账号名单中可以包含被选取的各个账号的账号标识,如可以为账号ID、账号昵称、账号编号等,不再赘述。其中,可以采用随机选取、按照预设数量间隔选取或者按照账号类型选取等规则从上述备选账号中选取账号创建权限账号名单,该规则可以由资源提供方指定或者采用资源分配系统的默认规则,本公开实施例并不对此进行限制。
其中,创建的上述权限账号名单可以包括无权账号名单和/或有权账号名单。在权限账号名单为无权账号名单的情况下,若无权账号名单中存在某账号的账号标识,则该账号无针对上述资源分配事件的访问权限;反之,若无权账号名单中不存在某账号的账号标识,则该账号具有针对上述资源分配事件的访问权限。或者,在权限账号名单为有权账号名单的情况下,若账号名单中存在某账号的账号标识,则该账号具有针对上述资源分配事件的访问权限;否则,若账号名单中不存在某账号的账号标识,则该账号无针对上述资源分配事件的访问权限。从而,服务端可以根据上述账号权限名单确定任一账号是否具有针对上述资源分配事件的访问权限。
在一实施例中,为减少数据通讯次数以降低服务端的通讯压力,服务端可以将上述事件标识作为事件信息,将任一账号是否具有针对上述资源分配事件的访问权限的情况作为权限信息,并将事件信息和权限信息一并下发至各个备选账号对应的客户端,从而客户端可以直接接收服务端合并发送的事件信息和权限信息。另外,服务端还可以将上述资源信息包含在该事件信息中下发至客户端,以便客户端向用户展示相应的红包信息,便于用户根据红包信息制定自己的抢红包策略。
客户端在接收到上述事件信息后、或者接收到上述事件信息和权限信息后,可以相应的展示针对资源分配事件的访问入口控件。在一实施例中,上述事件信息还包括入口开放时刻(如红包开抢时刻),从而客户端可以在所述入口开放时刻到达前,隐藏资源分配事件对应的访问入口控件,或者仅展示未关联至待分配资源的无效访问入口控件,以保证在入口开放时刻之前,用户无法实施触发操作或者触发操作无效;然后在入口开放时刻到达时,展示关联至待分配资源的有效访问入口控件,使得所有用户均在该入口开放时刻开始可以实施有效的触发操作,以尽量保证各个客户端之间的公平竞争,增加资源分配事件的趣味性。
在另一实施例中,为实现对账号的初步筛选,服务端也可以先向各个备选账号对应的客户端下发上述事件信息,从而客户端可以在接收到事件信息后向用户展示事件提醒消息(如展示红包提示控件、展示“您有一个待抢红包”等提示文字),并相应的直接向服务端发送权限获取请求,或者在检测到用户的预设触发操作(如用户点击“参与抢红包”控件)后向服务端发送权限获取请求,该权限获取请求中可以包含事件标识和自身所对应账号的账号标识。相应的,服务端在接收到该权限获取请求后,可以根据事件标识确定资源分配事件对应的权限账号名单,进而通过在该权限账号名单中查询上述账号标识确定该账号是否具有针对资源分配事件的访问权限,并将根据查询结果生成的权限信息返回至发送该请求的客户端。
进一步的,为避免服务端在极短时间内接收到大量权限获取请求,以保证服务端的运行稳定性,可以将客户端发送的权限获取请求分散在预设时间段内。例如,服务端可以在创建上述资源分配事件并确定入口开放时刻后,进一步确定位于该入口开放时刻之前的第一时刻和第二时刻,并将该第一时刻和第二时刻作为事件信息下发至客户端。从而任一客户端可以在接收到事件信息后,随机确定位于第一时刻和第二时刻之间的第三时刻,并在第三时刻到达时,再向服务端发送权限获取请求。从而将大量客户端的权限获取请求随机分散在入口开放时刻之前位于第一时刻和第二时刻之间的时间段内,以有效降低服务端接收到权限获取请求的请求峰值,降低服务端的峰值压力。
步骤206,若所述权限信息表明所述账号无所述访问权限,则展示针对所述待分配资源的获取失败消息。
步骤208,若所述权限信息表明所述账号有所述访问权限,则发起事件访问请求,以及,接收并展示为所述账号分配所述待分配资源的资源分配结果,所述事件访问请求中包含所述事件标识和所述账号的账号标识。
在本实施例中,任一客户端接收到的权限信息表明其对应的账号无访问权限,则表明该客户端不存在以该账号的名义向服务端请求分配待分配资源的权限,即该账号不具有针对待分配资源的获取权限——实际上,该账号获取该资源分配事件对应的待分配资源已经失败。以抢红包为例,此时表明该客户端对应的账号抢红包失败,因此客户端可以直接向用户展示抢红包失败消息,如“你的手气有点差,期待下次吧!”等提示语句。可见,服务端通过预先确定的权限账号名单确定各个客户端针对资源分配事件的访问权限,进而提前将该权限下发至各个客户端,实现了资源分配结果的部分前置,使得账号不具有权限的客户端在入口开放时刻检测到用户实施的触发操作后,即可立即向用户展示获取失败消息,避免了用户过长的等待时间,更减少了服务端接收到的事件访问请求的个数。
在本实施例中,在当前时刻到达入口开放时刻的情况下,客户端可以为用户展示有效入口开放控件,从而用户可以针对该控件实施预设的触发操作,如用户可以点击“开抢”按钮,进而客户端在检测到访问入口控件被触发,且自身获取的权限信息表明自身对应的账号具有上述访问权限的情况下,向服务端发送包含事件标识和自身所对应账号的账号标识的事件访问请求,以向服务端请求获取待分配资源。其中,任一客户端对应的账号可以为已注册的用户账号(用于表明所述用户的身份),也可以为服务端为该客户端分配的临时账号,可以理解的是,任一客户端仅能够对应于一个账号——该账号可能为用户账号或临时账号,因此客户端向服务端发送的事件访问请求可包含其所对应的用户账号或者临时账号的账号标识。
因为上述临时账号时服务端为客户端临时分配或者客户端临时自行生成的,所以上述临时账号的安全性难以保障。在一实施例中,为保证资源分配的真实有效,当前尚未登录用户账号(向服务端发送的权限获取请求中包含临时账号的账号标识)的客户端,可以在入口开放时刻之前或者用户触发访问入口控件之后,向用户展示“参与xx请先登录账号”或“您尚未登录,无法参与xx”等提示信息,以便用户控制在客户端中登录已注册的用户账号(当然,也可以跳转至注册页面,并在注册完成后登录),从而保证后续向服务端发送的事件访问请求中包含用户账号的账号标识。
服务端接收到账号(并被理解为登录有该账号的客户端)发送的事件访问请求后,可以根据预设算法为该账号分配待分配资源。因为服务端可能在短时间内接收到多个事件访问请求(数量为无权账号名单中的账号标识个数、或者备选账号个数与有权账号名单中的账号标识个数的差值),所以服务端可以按照接收事件访问请求的前后顺序为各个事件访问请求对应的账号分配待分配资源。而且,任一账号分到的待分配资源量可以与服务端接收到该账号发送的事件访问请求的时刻的先后呈正相关(接收请求时刻越早,所分配资源量越多);或者也可以按照随机算法为各个账号随机分配待分配资源,或者还可以按照其它算法进行计算,本公开实施例并不对此进行限制。
服务端计算得到账号的资源分配结果后,可以将该结果返回至相应的客户端。因为服务端接收到的事件访问请求数量可能大于待分配资源的可分配数量,所以可能存在部分账号未分配到待分配资源。例如,红包的提供方指定的红包个数为100个,但是服务端接收到客户端发送的120个事件访问请求,则这些请求对应的120个账号中,将有20个账号不会被分配红包,即这20个账号抢红包失败。相应的,客户端在接收到上述资源分配结果后,若该资源分配结果表明自身对应的账号未分配到待分配资源,则客户端可以展示分配失败消息,以及时告知用户;否则,若该资源分配结果表明该账号分配到了待分配资源,则客户端可以展示分配成功消息,该消息可以包含分配到的资源的详细资源信息,如资源数量、资源量等。
在一实施例中,客户端还可以通过权限获取请求向服务端请求获取令牌信息(或称token),从而服务端在接收到包含账号的账号标识的权限获取请求后,可以根据该账号标识生成令牌信息,例如根据账号标识生成一段随机字符串,并将该令牌信息与权限信息合并或分别返回至发送权限获取请求的客户端。客户端在接收到服务端响应于权限获取请求返回的令牌信息后,可以将该令牌信息包含在事件访问请求中发送至服务端,以由服务端使用该令牌信息确定客户端所对应账号的资源分配结果。例如,服务端可以使用该令牌信息对客户端对应的账号进行身份验证:在响应于权限获取请求生成上述令牌信息后,服务端可以生成的令牌信息与账号标识关联保存在本地,从而在接收到任一客户端发送的事件访问请求后,可以按照账号标识查询该请求中包含的令牌信息与本地保存的对应于该账号标识的令牌信息是否一致:若二者一致则表明该客户端确实是发送过权限获取请求的客户端,否则,若二者不一致则表明该客户端并未向服务端发送过权限获取请求,因此该客户端可能为非法客户端(如黑产、盗号等非法账号对应的客户端)。对于非法客户端,服务端可以采取丢弃、记录、告警等针对性措施,从而实现对用户账号的身份识别与合法性验证,并避免非法用户账号窃取待分配资源,有效提升了资源分配的安全性。
在一实施例中,在直播场景下,上述服务端为直播节目对应的直播服务端,上述客户端为直播节目对应的观众客户端或主播客户端,从而上述待分配资源的资源提供方可以为观众客户端对应的观众用户(如观众打赏红包或礼物等)、主播客户端对应的主播用户(如主播为活跃气氛发放红包或福利等)、直播节目的赞助机构(直播节目赞助商发放拉客红包等)、直播节目对应的官方机构(如直播平台为直播节目导流发送红包等)等的一种或多种,本公开实施例并不对此进行限制。
在一实施例中,前述各实施例中涉及到的待分配资源可以包括虚拟货币、比特币、Q币等虚拟币,活动优惠券、货品折扣券等虚拟优惠券,活动参与名额、货品购买权限等预定权限,直播平台或即时通讯平台提供的虚拟礼物等的一种或多种,当然,还可以为其他形式,本公开实施例并不对此进行限制。
在一实施例中,服务端与任一客户端之间可以通过长连接服务(Long ConnectionService,LCS)实现数据传输。具体的,可以采用相关技术中提供的WebSocket、ajax轮询、long poll长轮询、iframe长连接等方式实现,此处不再赘述。
图3是本说明书一示例性实施例示出的另一种资源分配方法的流程图。如图3所示,该方法应用于服务端,对应于图2所示实施例,该方法可以包括以下步骤:
步骤302,确定资源分配事件的事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征客户端对应的目标账号是否具有针对所述资源分配事件的访问权限。
在本实施例中,资源提供方可以向服务端指定待分配资源的资源数量、分配规则、分配入口控件开放时刻等资源信息,进而服务端可以根据该资源信息创建资源分配事件,并为该资源分配事件分配相应的事件标识。以用户U发放虚拟币红包为例,用户U可以通过自身所使用的客户端向服务端指定红包中待分配的虚拟币总量、红包个数、虚拟币分配规则、开抢时刻等红包信息。服务端接收到上述红包信息后创建相应的待抢红包,并为该待抢红包分配红包标识。
在一实施例中,服务端可以在创建资源分配事件后,确定该事件对应的备选账号,然后按照预设规则从备选账号中选取预设数量的账号,并利用被选取的账号的账号标识创建权限账号名单。其中,上述备选账号可以为服务端所对应的客户端中处于登录状态的用户账号,或者也可以为服务端预先为客户端分配的临时账号,本公开实施例并不对此进行限制。但是需要说明的是,在临时账号具有针对资源分配之间的访问请求的情况下,临时账号对应的客户端需要使用已注册的用户账号向服务端请求获取待分配资源,以避免临时账号被黑产利用,保证资源分配的有效性,保障待分配资源提供方的权益。
例如在直播场景下,服务端在直播节目中创建待分配红包后,可以将进入该直播节目的直播间的全部观众用户账号确定为待分配红包的备选账号;或者,在客户端未登录已注册的用户账号即进入该直播间(即以游客身份观看直播节目)的情况下,服务端可以为该客户端分配针对该直播间的临时账号,此时服务端可以将进入直播间的全部客户端对应的已注册的用户账号和上述临时账号,均确定为备选账号。又或者在即时通讯场景下,服务端在会话群组中创建待分配红包后,可以将该会话群组中的全部用户账号或红包发起方指定的用户账号确定为待分配红包的备选账号,本公开实施例并不对此进行限制。然后可以从上述备选账号中选取部分账号,并使用这部分账号的账号标识创建权限账号名单。该权限账号名单中可以包含被选取的各个账号的账号标识,如可以为账号ID、账号昵称、账号编号等,不再赘述。当然,上述名单也可以由服务端调用预设的名单创建设备或名单创建服务进行创建。其中,可以采用随机选取、按照预设数量间隔选取或者按照账号类型选取等规则选取上述备选账号,该规则可以由资源提供方指定或者采用资源分配系统的默认规则,不再赘述。
服务端可能接收多个服务端发送的权限获取请求,本实施例仅针对登录有任一用户账号的任一客户端发送的权限获取请求为例进行说明,因此下文将该用户账号称为目标账号,并将该客户端称为目标客户端。
在一实施例中,服务端创建的上述权限账号名单可以包括无权账号名单和/或有权账号名单。因此,服务端在接收到目标客户端发送的权限获取请求后,可以获取其中包含的目标账号的账号标识,并通过在无权账号名单或有权账号名单中查询该账号标识确定目标账号是否与有针对资源分配事件的访问权限。具体的,若无权账号名单中存在目标账号标识,和/或有权账号名单中不存在目标账号标识,则可以确定目标账号无上述访问权限;否则,若有权账号名单中存在目标账号标识,和/或无权账号名单中不存在目标账号标识,则确定目标账号有访问权限。进而,服务端可以根据上述查询过程得到的目标账号是否有所述访问权限的确定结果,相应的生成资源分配事件的权限信息。以抢红包为例,若权限信息表明目标账号无上述访问权限,则客户端在检测到用户针对访问入口控件实施的触发操作后,可以直接向用户展示抢红包失败消息,可见,此时即相当于将抢红包结果为失败这一抢红包结果提前发送至部分客户端(或称结果前置),使得客户端在用户触发访问入口控件后即可在本地确定相应的抢红包结果,而不必向服务端发送事件访问请求。
可以理解的是,若上述备选账号的个数为S1,上述资源提供方指定的(或默认的)资源数量为S2,则在S1>S2的情况下,会存在S2个账号被分配到资源(如抢到红包),而其余S1-S2个账号则不会分配到资源(如未抢到红包)。因此,无权账号名单中的账号标识的个数应当不大于S1-S2;而有权账号名单中的账号标识的个数应当不小于S2,从而保证待分配资源被完全分配,以实现较好的资源分配效果。
进一步的,为避免服务端在极短时间内接收到大量权限获取请求,以保证服务端的运行稳定性,服务端可以向客户端发送权限获取请求对应的第一时刻和第二时刻。例如,服务端可以在创建上述资源分配事件并确定入口开放时刻后,进一步确定位于该入口开放时刻之前的第一时刻和第二时刻,并将第一时刻和第二时刻包含在事件信息中返回至客户端,以使客户端随机确定位于第一时刻和第二时刻之间的第三时刻,并在第三时刻到达时,向服务端发送权限获取请求。
其中,上述第一时刻小于第二时刻,二者可以为相对时刻,如第一时刻可以为入口开放时刻前60s,第二时刻可以为入口开放时刻前40s,从而客户端可以在入口开放时刻前60s-40s的20s缓冲时间段内随机确定第三时刻用于向服务端发送权限获取请求;或者,二者也可以为绝对时刻,如在入口开放时刻为20:00整的情况下,第一时刻可以为19:58:00,第二时刻可以为19:59:00,从而客户端可以在19:58:00-19:59:00的1min缓冲时间段内随机确定第三时刻用于向服务端发送权限获取请求。当然,本公开实施例对于上述第一时刻与第二时刻之间的间隔时长(即上述缓冲时间段的长度)、第一时刻和第二时刻的具体取值及其形式等并不进行限制,均可以根据具体的业务场景进行预先设置,此处不再赘述。通过向客户端下发位于入口开放时刻之前的第一时刻和第二时刻,从而将大量客户端的权限获取请求随机分散在第一时刻和第二时刻之间的时间段内,有效降低了服务端接收到权限获取请求的请求峰值,进而降低了服务端的峰值压力。
在一实施实施例中,服务端在接收到包含目标账号的账号标识的权限获取请求后,还可以根据该账号标识生成令牌信息,并将该令牌信息与权限信息合并或分别返回至发送权限获取请求的客户端。上述令牌信息可以为根据账号标识生成的一段随机字符串,从而客户端可以在接收到服务端响应于权限获取请求返回的令牌信息后,将该令牌信息包含在事件访问请求中发送至服务端,进而服务端可以根据该令牌信息对目标账号进行身份验证:服务端可以将响应于权限获取请求生成的令牌信息与账号标识关联保存在本地,从而在接收到任一客户端发送的事件访问请求后,可以按照账号标识查询该请求中包含的令牌信息与本地保存的对应于该账号标识的令牌信息是否一致:若二者一致则表明该客户端确实是发送过权限获取请求的客户端;反之,若二者不一致则表明该客户端并未向服务端发送过权限获取请求,因此该客户端可能为非法客户端(如黑产、盗号等非法账号对应的客户端)。对于非法客户端,服务端可以采取丢弃、记录、告警等针对性措施,从而实现对用户账号的身份识别与合法性验证,并避免非法用户账号窃取待分配资源,有效提升了资源分配的安全性。
步骤304,将所述事件信息和权限信息发送至所述客户端,用于由所述客户端在检测到所述资源分配事件的访问入口控件被触发,且所述权限信息表明所述目标账号无所述访问权限的情况下,展示针对所述待分配资源的获取失败消息。
在一实施例中,服务端可以确定资源分配事件对应的入口开放时刻(如红包开抢时刻),然后将入口开放时刻包含在事件信息中发送至客户端,以使客户端在入口开放时刻到达前,隐藏资源分配事件对应的访问入口控件,或者仅展示未关联至待分配资源的无效访问入口控件,而在入口开放时刻到达时,才展示关联至待分配资源的有效访问入口控件。通过向所有客户端下发该入口开放时刻,实现了向所有客户端指定统一的资源分配的开始时刻,从而实现“抢”的效果。其中,上述入口开放时刻可以由待分配资源的资源提供方指定,也可以采用资源分配系统预先设置的默认时刻等;无论是资源提供方指定的时刻或者默认时刻,均可以为绝对开放时刻(如凌晨12:00整开抢)或相对开抢时刻(如在红包创建的1分钟后开抢)等,本公开实施例并不对此进行限制。
步骤306,响应于所述客户端发送的事件访问请求,确定为所述目标账号分配所述待分配资源的资源分配结果,并将所述资源分配结果返回至所述客户端用于展示;所述事件访问请求包含所述事件标识和所述目标账号的目标账号标识,由所述客户端在检测到所述访问入口控件被触发,且所述权限信息表明所述目标账号有所述访问权限的情况下发送。
在本实施例中,服务端计算得到目标账号的资源分配结果后,可以将该结果返回至目标客户端。因为服务端接收到的事件访问请求数量可能大于待分配资源数量,所以可能存在部分用户账号未分配到待分配资源。相应的,目标客户端在接收到上述资源分配结果后,若该资源分配结果表明目标账号分配到了待分配资源,则目标客户端可以展示分配成功消息,该消息可以包含分配到的资源的详细资源信息,如资源数量、资源量等。否则,若该资源分配结果表明目标账号未分配到待分配资源,则目标客户端可以展示分配失败消息,以及时告知用户。
在一实施例中,服务端与任一客户端之间可以通过长连接服务实现数据传输。具体的,可以采用相关技术中提供的WebSocket、ajax轮询、long poll长轮询、iframe长连接等方式实现,此处不再赘述。
根据图2或图3所对应的上述实施例,服务端预先确定各个客户端对应的账号对于资源分配事件的访问权限,并由客户端在用户触发资源分配事件对应的访问入口控件之前,从服务端获取相应的权限信息,从而客户端可以在用户触发之后立即确定自身所对应的账号是否具有针对资源分配事件的访问权限,进而在账号无该权限时直接向用户展示相应的获取失败信息,而仅仅在账号有该权限时才会向服务端发送事件访问请求以请求获取待分配资源。可见,因为只有具有访问权限的账号所对应的客户端才会向服务端发送事件访问请求,所以大大减少了服务端实际接收到的事件访问请求的数量,从而即便存在海量用户也能够有效降低服务端的峰值压力。而且,通过服务端预先向客户端下发权限信息,使得不具有访问权限的大量账号在用户触发访问入口控件后能够立即显示出相应的获取失败消息(如未抢到红包),而具有访问权限的账号在用户触发访问入口控件后不必等待随机时长即可直接向服务端发送事件访问请求,进而尽快接收并展示相应的资源分配结果(如未抢到红包,或者抢到红包的大小等),可见,全部客户端均能够尽快向用户展示相应的资源分配结果,从而有效提升了参与资源分配事件的用户的参与体验。
图4是根据本公开的实施例示出的一种资源分配方法的交互流程图。下面结合图4-图8,对直播间里的观众用户抢红包这一应用场景下,服务端和客户端采用上述资源分配方法为观众用户分配红包的具体过程进行详细说明。如图4所示,该过程可以包括下述步骤:
步骤401,服务端配置红包数据。
在直播节目开播后的任意时刻,直播间通常存在多个观众用户观看该直播节目。此时,基于活跃气氛或推广货品等目的,观众、主播、直播节目的赞助商、直播平台官方等一方或多方可以在该直播间发放红包。以观众为例,观众(下称发红包观众)可以选择观众客户端中提供的红包发放功能,并在该功能开启后的红包配置页面中指定其欲发放的红包的虚拟币数量、红包个数(即红包中的全部虚拟币可以被几个用户账号抢到)、虚拟币分配规则(如平均分配、随机分配、按抢红包请求的发送时刻依次减少等)、开抢时刻等红包信息,并在配置完成后选择发放该红包,从而观众客户端会将上述红包信息包含在红包创建请求中发送至服务端(图中未示出)。当然,红包中的资源也可以为虚拟优惠券、预定权限、虚拟礼物等的一种或多种;上述红包信息也可以采用直播间的默认值,本公开实施例并不对此进行限制。
服务端接收到上述红包信息后,可以根据该红包信息创建待抢红包,并为待抢红包分配相应的红包标识。具体的,可以仅创建一个一级红包并分配红包标识,从而在后续步骤413中根据计算得到的抢红包结果依次创建多个二级红包并分配至各个用户账号,此时,二级红包的数量即为发红包观众指定的红包数量。或者,也可以直接创建多个红包并分配同一红包标识,从而在后续步骤413中根据计算得到的抢红包结果依次将各个红包分配至各个用户账号,此时,创建的红包的数量即为发红包观众指定的红包数量。
另外,服务端可以根据发红包的观众指定的上述红包信息生成红包数据。具体的,红包数据可以为包括红包标识、开抢时刻Ts、第一时刻T1和第二时刻T2。其中,红包标识即为前一实施例中为新创建的待抢红包分配的红包标识,例如可以为随机字符串或者符合预设规则的红包编号等。开抢时刻Ts可以为发红包观众指定的时刻,如可以为绝对时刻“今天凌晨12:00”,也可以为相对时刻“红包创建后的1分钟”等。上述T1和T2早于Ts,以Ts为“红包创建后的1分钟”为例,此时T1和T2可以分别为“红包创建后的第10秒”和“红包创建后的第40秒”。上述T1和T2可以由服务端预先设置,或者按照预设规则根据当前直播间的观众数量进行确定,如可以设置从红包创建至T1之间的时间间隔与当前直播间的观众数量呈正相关,以尽量保证服务端顺利生成权限账号名单;还可以设置T1和T2之间的时间间隔与当前直播间的观众数量呈正相关,以将观众用户的权限获取请求分散在开抢时刻之前尽量长的时间段内,从而有效减低服务端接收到的权限获取请求的请求数量峰值,降低服务端的峰值压力。
服务端可以在配置完成上述红包数据后,确定当前直播间的全部用户账号,并将其作为备选账号。当然,在发红包用户指定抢红包用户的抢红包条件(如指定用户账号等级或用户性别等)的情况下,可以将当前直播间的全部用户账号中符合上述抢红包条件的用户账号设置为备选账号。
服务端可以先后执行下述步骤402和步骤403,也可以同时执行下述步骤402和步骤403,本公开实施例并不对此进行限制。
步骤402,服务端确定无权账号名单。
以权限账号名单为无权账号名单为例,服务端可以按照预设规则从全部备选账号中选取部分用户账号,并利用选取出的用户账号的账号标识生成无权账号名单,即该无权账号名单中保存有被选取出的用户账号的账号标识。此时,账号标识位于该无权账号名单中的用户账号,即对应于后续步骤410中直接展示抢红包失败消息的用户账号,可见,这部分账号的抢红包结果此时已经被确定。
当然,为保证无权账号名单创建过程的公平性,可以采用随机选取、按照预设数量间隔选取等规则从上述备选账号中选取账号创建权限账号名单,当然,也可以按照账号类型选取上述账号,不再赘述。
步骤403,服务端向客户端下发红包数据。
服务端将上述红包数据发送至登录有备选账号的各个客户端。
步骤404,客户端展示红包挂件并确定红包的开抢时刻Ts。
客户端在接收到上述红包数据后,可以相应的展示红包控件,并从红包数据中确定该红包的开抢时刻。
以图5所示的观众客户端展示界面示意图为例进行说明。如图5所示,直播界面左上角展示有当前主播A的账号名称、账号头像等账号标识501。在直播过程中,弹幕区域中可以展示红包提醒消息509,如可以为“观众B发了一个红包”,相应的可以在屏幕右上角展示红包挂件502。另外,可以在展示红包挂件502的同时、或者用户点击该红包挂件502之后,展示相应的红包详情控件503,该红包详情控件503中可以包括发红包观众(即观众B)的账号头像504;红包来源说明505,如可以为“B的红包”等;红包内容详情506,如可以为“500元……”等。该红包详情控件503还可以展示开抢倒计时507,以便用户及时获知空包开抢时刻,避免漏抢。另外,红包详情控件503下方还可以展示控件关闭按钮508,从而用户可以通过点击该按钮关闭红包详情控件503。当然,关闭之后还可以通过点击红包挂件502再次唤出,或者在预设时长后(如距离开抢时刻还有5秒时)自动弹出红包详情控件503,进一步避免用户漏抢。
步骤405,客户端在第一时刻T1和第二时刻T2之间随机确定第三时刻T3。
此时,客户端可以在T1和T2之间随机确定T3。仍以Ts为“红包创建后的1分钟”为例,若T1和T2分别为“红包创建后的第10秒”和“红包创建后的第40秒”,则可以在T1和T2之间随机确定任一时刻作为T3,如随机确定出T3为“红包创建后的第22秒”,即T3为“开抢时刻前38秒”。
步骤406,在T3时刻,客户端向服务端发送权限获取请求。
随着开抢倒计时的时间间隔逐渐减小,在当前时刻到达T3时,客户端可以向服务端发送权限获取请求,该请求中可以包含前述的红包标识以及客户端所登录用户账号的账号标识。
通过上述T1和T2的下发,服务端为所有备选观众用户指定了统一的权限获取时限;而客户端通过在T1和T2之间随机确定T3,并在T3时刻向服务端发送权限获取请求,从而将各个客户端所发送的权限获取请求随机分散在T1和T2之间,保证了服务端接收权限获取请求的请求峰值不至于过高,有助于降低服务端的峰值压力。
值得说明的是,在服务端执行步骤402的同时,客户端在等待T3到来,因此在设置T1时应当考虑服务端生成无权名单的耗时,以保证在红包创建后到T1时刻这段时间内,服务端能够生成无权账号名单。
步骤407,服务端查询无权账号名单以确定用户账号的抢红包权限,并确定token。
因为服务端可能同时维护有多个直播间,因此其可能同时维护有多个红包标识以及红包对应的权限账号名单,所以服务端在接收到任一客户端发送的权限获取请求后,一方面可以先从该请求中提取红包标识,并根据该红包标识确定其对应的无权账号名单;另一方面可以从该请求中提取用户账号的账号标识。然后可以在无权账号名单中查询该账号标识:若无权账号名单中存在该账号标识,则可以判定该用户账号不具有向服务端发送抢红包请求的权限(此刻,即已确定该用户账号抢红包失败);否则,若无权账号名单中不存在该账号标识,则可以判定该用户账号具有向服务端发送抢红包请求的权限。确定用户账号的抢红包权限后,可以根据该权限生成相应的权限信息——该信息用于表征上述抢红包权限的查询结果。
另外,服务端可以根据用户账号标识生成针对用户账号的token,例如可以使用该账号标识生成随机数,并将该随机数作为针对用户账号的token。因为服务端会接收到多个用户账号的权限获取请求,因此其可以将各个用户账号的账号标识与生成的针对该账号标识的token关联保存,以便后续步骤412中验证用户账号的账号身份。
步骤408,服务端向客户端返回权限信息和token。
服务端在生成任一用户账号对应的权限信息和token后,可以将权限信息和token返回至发送上述权限获取请求的客户端(即登录有用户账号的客户端)。
可以理解的是,因为T1<T3<T2<Ts这一相对时间关系的存在,保证了客户端必然会在Ts时刻之前获取到服务端返回的权限信息。
步骤409,在Ts时刻,客户端展示开抢控件并检测用户实施的抢红包操作。
在当前时刻到达Ts时刻(即上述开抢倒计时结束)时,客户端可以展示红包对应的开抢控件,此时用户可以针对该控件实施抢红包操作,因此客户端可以相应的检测用户实施的抢红包操作。如图6所示,可以在红包详情控件601中展示开抢控件602,如可以为展示“开”字的按钮,此时用户可以点击该开抢控件602。
在检测到用户实施的抢红包操作(即触发上述“开”字按钮的点击操作)后,服务端可以对步骤408中获取到的权限信息进行判断:若权限信息表明用户账号不具有向服务端发送抢红包请求的权限,可以转入步骤410;否则,若权限信息表明用户账号具有向服务端发送抢红包请求的权限,可以转入步骤411。
步骤410,客户端展示抢红包失败消息。
此时,客户端可以直接展示如图7所示的抢红包失败消息701,如可以为“手慢了,红包派完了…”或“运气不好,下次加油!”等,从而及时告知用户该次抢红包结果为失败,未抢到任何红包。可见,因为抢红包失败的结果是根据开抢时刻之前(前述步骤408)获取到的权限信息确定的,所以实际上客户端在开抢时刻前的预热时间段(即前述红包创建时刻至开抢时刻之间的1分钟)中就获取到了用户账号的抢红包结果,从而这部分用户账号对应的客户端不必在开抢时刻后真的向服务端发送抢红包请求,因此大大减少了服务端实际接收到的抢红包请求的数量。另外,还可以展示详情查看入口702,以便用户查看其他用户的抢红包结果。
步骤411,客户端向服务端发送抢红包请求。
此时,客户端可以向服务端发送包含红包标识、用户账号的账号标识以及上述token的抢红包请求。
步骤412,服务端验证用户身份。
服务端可以从抢红包请求中提取出用户账号的账号标识和token(下称token1),并在步骤407中关联保存的全部token中,确定对应于该用户账号的已保存token(下称token2),然后可以将token1与token2进行比较:若token1与token2一致,则表明发送该抢红包请求的客户端即为步骤406中向服务端发送过权限获取请求的客户端,所以可判定发送抢红包请求的客户端身份合法(通过身份验证),此时可转入步骤413;否则,若token1与token2不一致,则表明发送该抢红包请求的客户端并未在步骤406中向服务端发送过权限获取请求,所以可判定发送抢红包请求的客户端身份非法(未通过身份验证),此时可将该抢红包请求丢弃、记录或针对该抢红包请求进行告警,从而对非法请求进行有效处理。
步骤413,服务端计算抢红包结果,并将该结果返回至客户端。
因为服务端接收到的抢红包请求的数量通常并非仅有一个,所以需要计算发送抢红包请求的各个用户账号实际分配的红包。例如,在服务端接收到的抢红包请求的数量大于发红包观众指定的红包个数,或者各个红包的虚拟币数量并不完全相同的情况下,可以计算发送抢红包请求的任一用户账号应当分到的红包个数、红包中虚拟币量等信息。具体的,可以采用随机分配、按照接收抢红包请求的前后顺序分配或者其他方式分配,本公开实施例并不对此进行限制。
当然,为了避免红包派发有剩余,所以备选账号的个数与无权账号名单中账号个数之间的差值往往大于红包个数(即实际向服务端发送抢红包请求的客户端个数大于红包个数),因此服务端接收到的抢红包请求的数量往往大于发送包观众指定的红包个数,进而针对任一用户账号计算出的抢红包结果,可能为抢到红包或者未抢到红包,且对于抢到红包的各个用户账号,所抢到红包中的虚拟币金额可能也不相同。服务端可以在计算完成任一用户账号对应的抢红包结果后,将该抢红包结果返回至该用户账号对应的客户端。
步骤414,客户端展示抢红包结果。
客户端在接收到上述抢红包结果后,可以向用户展示该结果。在未抢到红包的情况下,可以展示如图7所示的抢红包失败消息,不再赘述。在抢到红包的情况下,可以展示如图8所示的抢红包成功消息。如图8所示,可以展示红包内容信息801,如现金形式的虚拟币;也可以展示红包赠送控件802,以便用户将抢到的红包赠与主播(当然,也可以赠与他人,不再赘述);还可以展示详情查看入口803,以便用户查看所有用户的抢红包结果。
与前述资源分配方法的实施例相对应地,本公开还提出了一种资源分配装置的实施例。
图9是根据本公开的实施例示出的一种资源分配装置的示意框图。本实施例所示的资源分配装置可以适用于资源分配系统的客户端,包括但不限于手机、平板电脑、可穿戴设备、个人计算机等电子设备。
如图9所示,所述资源分配装置可以包括:
信息获取单元901,被配置为获取事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征所述客户端对应的账号是否具有针对所述资源分配事件的访问权限;
展示及判断单元902,被配置为展示所述资源分配事件对应的访问入口控件,并在检测到所述访问入口控件被触发的情况下,判断所述权限信息:
失败展示单元903,被配置为若所述权限信息表明所述账号无所述访问权限,则展示针对所述待分配资源的获取失败消息;
资源请求单元904,被配置为若所述权限信息表明所述账号有所述访问权限,则发起事件访问请求,以及,接收并展示为所述账号分配所述待分配资源的资源分配结果,所述事件访问请求中包含所述事件标识和所述账号的账号标识。
可选的,所述事件信息还包括入口开放时刻,所述展示及判断单元902还被配置为:
在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件;
在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
可选的,所述信息获取单元901还被配置为:
在所述入口开放时刻到达前,向服务端发送权限获取请求,所述权限获取请求中包含所述事件标识和所述账号的账号标识;
接收所述服务端响应于所述权限获取请求返回的权限信息。
可选的,所述事件信息还包括位于所述入口开放时刻之前的第一时刻和第二时刻,所述信息获取单元901还被配置为:
随机确定位于所述第一时刻和所述第二时刻之间的第三时刻,并在所述第三时刻到达时,向服务端发送权限获取请求。
可选的,还包括:
令牌接收单元905,被配置为接收所述服务端响应于所述权限获取请求返回的令牌信息;
令牌发送单元906,被配置为将所述令牌信息包含在所述事件访问请求中发送至所述服务端,所述令牌信息用于确定所述资源分配结果。
可选的,所述客户端包括直播节目对应的观众客户端或主播客户端,所述服务端包括所述直播节目对应的直播服务端,所述待分配资源的资源提供方包括下述至少之一:
所述观众客户端对应的观众用户、所述主播客户端对应的主播用户、所述直播节目的赞助机构、所述直播节目对应的官方机构。
可选的,所述待分配资源包括下述至少之一:虚拟币、虚拟优惠券、预定权限、虚拟礼物。
与前述资源分配方法的实施例相对应地,本公开还提出了另一种资源分配装置的实施例。
图10是根据本公开的实施例示出的一种资源分配装置的示意框图。本实施例所示的资源分配装置可以适用于资源分配系统的服务端,包括但不限于包含一独立主机的物理服务器、主机集群承载的虚拟服务器、云服务器等。
如图10所示,所述资源分配装置可以包括:
信息确定单元1001,被配置为确定资源分配事件的事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征客户端对应的目标账号是否有针对所述资源分配事件的访问权限;
信息发送单元1002,被配置为将所述事件信息和权限信息发送至所述客户端,用于由所述客户端在检测到所述资源分配事件的访问入口控件被触发,且所述权限信息表明所述目标账号无所述访问权限的情况下,展示针对所述待分配资源的获取失败消息;
资源分配单元1003,被配置为响应于所述客户端发送的事件访问请求,确定为所述目标账号分配所述待分配资源的资源分配结果,并将所述资源分配结果返回至所述客户端用于展示;所述事件访问请求包含所述事件标识和所述目标账号的目标账号标识,由所述客户端在检测到所述访问入口控件被触发,且所述权限信息表明所述目标账号有所述访问权限的情况下发送。
可选的,还包括:
开放时刻确定单元1004,被配置为确定所述资源分配事件对应的入口开放时刻;
开放时刻发送单元1005,被配置为将所述入口开放时刻包含在所述事件信息中发送至所述客户端,所述入口开放时刻用于由所述客户端在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件,并由所述客户端在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
可选的,所述信息确定单元1001还被配置为:
确定资源分配事件对应的备选账号;
按照预设规则从所述备选账号中选取预设数量的账号,并利用被选取的账号的账号标识创建权限账号名单;
响应于客户端发送的包含目标账号标识的所述权限获取请求,在所述权限账号名单中查询所述目标账号标识,根据查询结果确定所述资源分配事件的权限信息。
可选的,所述权限账号名单包括无权账号名单和/或有权账号名单,所述信息确定单元1001还被配置为:
若所述无权账号名单中存在所述目标账号标识、和/或所述有权账号名单中不存在所述目标账号标识,则确定所述目标账号无所述访问权限;
若所述有权账号名单中存在所述目标账号标识、和/或所述无权账号名单中不存在所述目标账号标识,则确定所述目标账号有所述访问权限;
根据所述目标账号是否有所述访问权限的确定结果,生成所述资源分配事件的权限信息。
可选的,还包括:
时刻确定单元1006,被配置为确定位于所述入口开放时刻之前的第一时刻和第二时刻;
时刻返回单元1007,被配置为将所述第一时刻和第二时刻包含在所述事件信息中返回至所述客户端,所述第一时刻和第二时刻用于由所述客户端确定所述权限获取请求的发送时机。
可选的,还包括:
令牌返回单元1008,被配置为根据从所述权限获取请求中提取的目标账号标识确定所述目标账号,并向所述客户端返回针对所述目标账号的令牌信息;
身份验证单元1009,被配置为在接收到所述客户端发送的包含所述令牌消息的事件访问请求后,根据所述令牌信息对所述目标账号进行身份验证,并在验证通过的情况下确定所述资源分配结果。
可选的,所述预设规则包括下述之一:
随机选取、按照预设数量间隔选取、按照账号类型选取。
可选的,所述服务端与所述客户端之间通过长连接服务实现数据传输。
本公开的实施例还提出一种客户端,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述客户端侧任一实施例所述的资源分配方法。
本公开的实施例还提出一种服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述服务端侧任一实施例所述的资源分配方法。
本公开的实施例还提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述服务端侧或客户端侧中任一实施例所述的资源分配方法。
本公开的实施例还提出一种计算机程序产品,包括计算机程序和/或指令,所述计算机程序和/或指令被处理器执行时实现上述第一方面或第二方面中任一实施例所述的资源分配方法。
图11是根据本公开的实施例示出的一种电子设备的示意框图。例如,电子设备1100可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图11,电子设备1100可以包括以下一个或多个组件:处理组件1102,存储器1104,电源组件1106,多媒体组件1108,音频组件1110,输入/输出(I/O)的接口1112,传感器组件1114,以及通信组件1118。
处理组件1102通常控制电子设备1100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1102可以包括一个或多个处理器1120来执行指令,以完成上述资源分配方法的全部或部分步骤。此外,处理组件1102可以包括一个或多个模块,便于处理组件1102和其他组件之间的交互。例如,处理组件1102可以包括多媒体模块,以方便多媒体组件1108和处理组件1102之间的交互。
存储器1104被配置为存储各种类型的数据以支持在电子设备1100的操作。这些数据的示例包括用于在电子设备1100上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1106为电子设备1100的各种组件提供电力。电源组件1106可以包括电源管理系统,一个或多个电源,及其他与为电子设备1100生成、管理和分配电力相关联的组件。
多媒体组件1108包括在电子设备1100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1108包括一个前置摄像头和/或后置摄像头。当电子设备1100处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1110被配置为输出和/或输入音频信号。例如,音频组件1110包括一个麦克风(MIC),当电子设备1100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1104或经由通信组件1118发送。在一些实施例中,音频组件1110还包括一个扬声器,用于输出音频信号。
I/O接口1112为处理组件1102和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1114包括一个或多个传感器,用于为电子设备1100提供各个方面的状态评估。例如,传感器组件1114可以检测到电子设备1100的打开/关闭状态,组件的相对定位,例如所述组件为电子设备1100的显示器和小键盘,传感器组件1114还可以检测电子设备1100或电子设备1100一个组件的位置改变,用户与电子设备1100接触的存在或不存在,电子设备1100方位或加速/减速和电子设备1100的温度变化。传感器组件1114可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1114还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1114还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
图像采集组件1116可以用于采集被摄对象的图像数据,以形成关于被摄对象的图像,并可以对该图像进行必要的处理。该图像采集组件1116可以包括相机模组,相机模组中的图像传感器(Sensor)通过镜头感应来自被摄对象的光线,将得到的感光数据提供给图像信号处理器(ISP,Image Signal Processing),由后者根据感光数据生成对应于被摄对象的图像。其中,上述图像传感器可以为CMOS传感器或CCD传感器,当然,也可以为红外传感器、深度传感器等;相机模组可以内置在电子设备1100中,也可以为电子设备1100的外接模组;上述ISP可以内置在相机模组中,也可以外挂在上述电子设备中(不在相机模组内)。
通信组件1118被配置为便于电子设备1100和其他设备之间有线或无线方式的通信。电子设备1100可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件1118经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1118还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在本公开一实施例中,电子设备1100可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述资源分配方法。
在本公开一实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1104,上述指令可由电子设备1100的处理器1120执行以完成上述资源分配方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
需要说明的是,在本公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本公开实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
Claims (33)
1.一种资源分配方法,其特征在于,应用于客户端,包括:
获取事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征所述客户端对应的账号是否具有针对所述资源分配事件的访问权限;
展示所述资源分配事件对应的访问入口控件,并在检测到所述访问入口控件被触发的情况下,判断所述权限信息:
若所述权限信息表明所述账号无所述访问权限,则展示针对所述待分配资源的获取失败消息;
若所述权限信息表明所述账号有所述访问权限,则发起事件访问请求,以及,接收并展示为所述账号分配所述待分配资源的资源分配结果,所述事件访问请求中包含所述事件标识和所述账号的账号标识。
2.根据权利要求1所述的方法,其特征在于,所述事件信息还包括入口开放时刻,所述展示所述资源分配事件对应的访问入口控件,包括:
在所述入口开放时刻到达前,隐藏所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件;
在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
3.根据权利要求2所述的方法,其特征在于,所述获取权限信息,包括:
在所述入口开放时刻到达前,向服务端发送权限获取请求,所述权限获取请求中包含所述事件标识和所述账号的账号标识;
接收所述服务端响应于所述权限获取请求返回的权限信息。
4.根据权利要求3所述的方法,其特征在于,所述事件信息还包括位于所述入口开放时刻之前的第一时刻和第二时刻,所述向服务端发送权限获取请求,包括:
随机确定位于所述第一时刻和所述第二时刻之间的第三时刻,并在所述第三时刻到达时,向服务端发送权限获取请求。
5.根据权利要求3所述的方法,其特征在于,还包括:
接收所述服务端响应于所述权限获取请求返回的令牌信息;
将所述令牌信息包含在所述事件访问请求中发送至所述服务端,所述令牌信息用于确定所述资源分配结果。
6.根据权利要求1所述的方法,其特征在于,所述客户端包括直播节目对应的观众客户端或主播客户端,所述客户端对应的服务端包括所述直播节目对应的直播服务端,所述待分配资源的资源提供方包括下述至少之一:
所述观众客户端对应的观众用户、所述主播客户端对应的主播用户、所述直播节目的赞助机构、所述直播节目对应的官方机构。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述待分配资源包括下述至少之一:虚拟币、虚拟优惠券、预定权限、虚拟礼物。
8.一种资源分配方法,其特征在于,应用于服务端,包括:
确定资源分配事件的事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征客户端对应的目标账号是否具有针对所述资源分配事件的访问权限;
将所述事件信息和权限信息发送至所述客户端,用于由所述客户端在检测到所述资源分配事件的访问入口控件被触发,且所述权限信息表明所述目标账号无所述访问权限的情况下,展示针对所述待分配资源的获取失败消息;
响应于所述客户端发送的事件访问请求,确定为所述目标账号分配所述待分配资源的资源分配结果,并将所述资源分配结果返回至所述客户端用于展示,所述事件访问请求包含所述事件标识和所述目标账号的目标账号标识,由所述客户端在检测到所述访问入口控件被触发,且所述权限信息表明所述目标账号有所述访问权限的情况下发送。
9.根据权利要求8所述的方法,其特征在于,还包括:
确定所述资源分配事件对应的入口开放时刻;
将所述入口开放时刻包含在所述事件信息中发送至所述客户端,所述入口开放时刻用于由所述客户端在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件,并由所述客户端在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
10.根据权利要求8所述的方法,其特征在于,所述确定资源分配事件的权限信息,包括:
确定资源分配事件对应的备选账号;
按照预设规则从所述备选账号中选取预设数量的账号,并利用被选取的账号的账号标识创建权限账号名单;
响应于客户端发送的包含目标账号标识的权限获取请求,在所述权限账号名单中查询所述目标账号标识,根据查询结果确定所述资源分配事件的权限信息。
11.根据权利要求10所述的方法,其特征在于,所述权限账号名单包括无权账号名单和/或有权账号名单,所述根据查询结果确定所述资源分配事件的权限信息,包括:
若所述无权账号名单中存在所述目标账号标识,和/或所述有权账号名单中不存在所述目标账号标识,则确定所述目标账号无所述访问权限;
若所述有权账号名单中存在所述目标账号标识,和/或所述无权账号名单中不存在所述目标账号标识,则确定所述目标账号有所述访问权限;
根据所述目标账号是否有所述访问权限的确定结果,生成所述资源分配事件的权限信息。
12.根据权利要求10所述的方法,其特征在于,还包括:
确定位于所述资源分配事件对应的入口开放时刻之前的第一时刻和第二时刻;
将所述第一时刻和第二时刻包含在所述事件信息中返回至所述客户端,所述第一时刻和第二时刻用于由所述客户端确定所述权限获取请求的发送时机。
13.根据权利要求10所述的方法,其特征在于,还包括:
根据从所述权限获取请求中提取的目标账号标识确定所述目标账号,并向所述客户端返回针对所述目标账号的令牌信息;
在接收到所述客户端发送的包含所述令牌信息的事件访问请求后,根据所述令牌信息对所述目标账号进行身份验证,并在验证通过的情况下确定所述资源分配结果。
14.根据权利要求10所述的方法,其特征在于,所述预设规则包括下述之一:
随机选取、按照预设数量间隔选取、按照账号类型选取。
15.根据权利要求8至14中任一项所述的方法,其特征在于,所述服务端与所述客户端之间通过长连接服务实现数据传输。
16.一种资源分配装置,其特征在于,应用于客户端,包括:
信息获取单元,被配置为获取事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征所述客户端对应的账号是否具有针对所述资源分配事件的访问权限;
展示及判断单元,被配置为展示所述资源分配事件对应的访问入口控件,并在检测到所述访问入口控件被触发的情况下,判断所述权限信息:
失败展示单元,被配置为若所述权限信息表明所述账号无所述访问权限,则展示针对所述待分配资源的获取失败消息;
资源请求单元,被配置为若所述权限信息表明所述账号有所述访问权限,则发起事件访问请求,以及,接收并展示为所述账号分配所述待分配资源的资源分配结果,所述事件访问请求中包含所述事件标识和所述账号的账号标识。
17.根据权利要求16所述的装置,其特征在于,所述事件信息还包括入口开放时刻,所述展示及判断单元还被配置为:
在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件;
在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
18.根据权利要求17所述的装置,其特征在于,所述信息获取单元还被配置为:
在所述入口开放时刻到达前,向服务端发送权限获取请求,所述权限获取请求中包含所述事件标识和所述账号的账号标识;
接收所述服务端响应于所述权限获取请求返回的权限信息。
19.根据权利要求18所述的装置,其特征在于,所述事件信息还包括位于所述入口开放时刻之前的第一时刻和第二时刻,所述信息获取单元还被配置为:
随机确定位于所述第一时刻和所述第二时刻之间的第三时刻,并在所述第三时刻到达时,向服务端发送权限获取请求。
20.根据权利要求18所述的装置,其特征在于,还包括:
令牌接收单元,被配置为接收所述服务端响应于所述权限获取请求返回的令牌信息;
令牌发送单元,被配置为将所述令牌信息包含在所述事件访问请求中发送至所述服务端,所述令牌信息用于确定所述资源分配结果。
21.根据权利要求16所述的装置,其特征在于,所述客户端包括直播节目对应的观众客户端或主播客户端,所述客户端对应的服务端包括所述直播节目对应的直播服务端,所述待分配资源的资源提供方包括下述至少之一:
所述观众客户端对应的观众用户、所述主播客户端对应的主播用户、所述直播节目的赞助机构、所述直播节目对应的官方机构。
22.根据权利要求16至21中任一项所述的装置,其特征在于,所述待分配资源包括下述至少之一:虚拟币、虚拟优惠券、预定权限、虚拟礼物。
23.一种资源分配装置,其特征在于,应用于服务端,包括:
信息确定单元,被配置为确定资源分配事件的事件信息和权限信息,所述事件信息包括待分配资源所对应资源分配事件的事件标识,所述权限信息用于表征客户端对应的目标账号是否有针对所述资源分配事件的访问权限;
信息发送单元,被配置为将所述事件信息和权限信息发送至所述客户端,用于由所述客户端在检测到所述资源分配事件的访问入口控件被触发,且所述权限信息表明所述目标账号无所述访问权限的情况下,展示针对所述待分配资源的获取失败消息;
资源分配单元,被配置为响应于所述客户端发送的事件访问请求,确定为所述目标账号分配所述待分配资源的资源分配结果,并将所述资源分配结果返回至所述客户端用于展示;所述事件访问请求包含所述事件标识和所述目标账号的目标账号标识,由所述客户端在检测到所述访问入口控件被触发,且所述权限信息表明所述目标账号有所述访问权限的情况下发送。
24.根据权利要求23所述的装置,其特征在于,还包括:
开放时刻确定单元,被配置为确定所述资源分配事件对应的入口开放时刻;
开放时刻发送单元,被配置为将所述入口开放时刻包含在所述事件信息中发送至所述客户端,所述入口开放时刻用于由所述客户端在所述入口开放时刻到达前,不展示所述资源分配事件对应的访问入口控件,或者展示未关联至所述待分配资源的无效访问入口控件,并由所述客户端在所述入口开放时刻到达时,展示关联至所述待分配资源的有效访问入口控件。
25.根据权利要求24所述的装置,其特征在于,所述信息确定单元还被配置为:
确定资源分配事件对应的备选账号;
按照预设规则从所述备选账号中选取预设数量的账号,并利用被选取的账号的账号标识创建权限账号名单;
响应于客户端发送的包含目标账号标识的权限获取请求,在所述权限账号名单中查询所述目标账号标识,根据查询结果确定所述资源分配事件的权限信息。
26.根据权利要求25所述的装置,其特征在于,所述权限账号名单包括无权账号名单和/或有权账号名单,所述信息确定单元还被配置为:
若所述无权账号名单中存在所述目标账号标识、和/或所述有权账号名单中不存在所述目标账号标识,则确定所述目标账号无所述访问权限;
若所述有权账号名单中存在所述目标账号标识、和/或所述无权账号名单中不存在所述目标账号标识,则确定所述目标账号有所述访问权限;
根据所述目标账号是否有所述访问权限的确定结果,生成所述资源分配事件的权限信息。
27.根据权利要求25所述的装置,其特征在于,还包括:
时刻确定单元,被配置为确定位于所述入口开放时刻之前的第一时刻和第二时刻;
时刻返回单元,被配置为将所述第一时刻和第二时刻包含在所述事件信息中返回至所述客户端,所述第一时刻和第二时刻用于由所述客户端确定所述权限获取请求的发送时机。
28.根据权利要求25所述的装置,其特征在于,还包括:
令牌返回单元,被配置为根据从所述权限获取请求中提取的目标账号标识确定所述目标账号,并向所述客户端返回针对所述目标账号的令牌信息;
身份验证单元,被配置为在接收到所述客户端发送的包含所述令牌信息的事件访问请求后,根据所述令牌信息对所述目标账号进行身份验证,并在验证通过的情况下确定所述资源分配结果。
29.根据权利要求25所述的装置,其特征在于,所述预设规则包括下述之一:
随机选取、按照预设数量间隔选取、按照账号类型选取。
30.根据权利要求23至29中任一项所述的装置,其特征在于,所述服务端与所述客户端之间通过长连接服务实现数据传输。
31.一种客户端,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的资源分配方法。
32.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求8至15中任一项所述的资源分配方法。
33.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项,和/或,权利要求8至15中任一项所述的资源分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011627846.XA CN112769715B (zh) | 2020-12-31 | 2020-12-31 | 资源分配方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011627846.XA CN112769715B (zh) | 2020-12-31 | 2020-12-31 | 资源分配方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769715A CN112769715A (zh) | 2021-05-07 |
CN112769715B true CN112769715B (zh) | 2023-04-07 |
Family
ID=75699341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011627846.XA Active CN112769715B (zh) | 2020-12-31 | 2020-12-31 | 资源分配方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769715B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390303B (zh) * | 2021-12-10 | 2023-09-26 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、服务器、存储介质及程序产品 |
US20230206218A1 (en) * | 2021-12-23 | 2023-06-29 | 12948231 Canada Inc. | Access Control Systems and Methods for On-line Services |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871933A (zh) * | 2016-06-22 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 一种虚拟资产配置系统、方法及装置 |
CN108270773A (zh) * | 2017-12-22 | 2018-07-10 | 杭州顺网珑腾信息技术有限公司 | 一种用于实现电子红包发放的处理系统 |
CN108829824A (zh) * | 2018-06-13 | 2018-11-16 | 广东小天才科技有限公司 | 互联网运营活动中的资源处理方法及装置 |
CN111182320A (zh) * | 2019-12-30 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 信息处理方法、装置、终端、服务器及存储介质 |
CN111611075A (zh) * | 2020-05-19 | 2020-09-01 | 北京达佳互联信息技术有限公司 | 虚拟资源请求处理方法、装置、电子设备及存储介质 |
CN111756820A (zh) * | 2020-06-11 | 2020-10-09 | 北京达佳互联信息技术有限公司 | 访问处理方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021976A1 (en) * | 2003-06-23 | 2005-01-27 | Nokia Corporation | Systems and methods for controlling access to an event |
-
2020
- 2020-12-31 CN CN202011627846.XA patent/CN112769715B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871933A (zh) * | 2016-06-22 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 一种虚拟资产配置系统、方法及装置 |
CN108270773A (zh) * | 2017-12-22 | 2018-07-10 | 杭州顺网珑腾信息技术有限公司 | 一种用于实现电子红包发放的处理系统 |
CN108829824A (zh) * | 2018-06-13 | 2018-11-16 | 广东小天才科技有限公司 | 互联网运营活动中的资源处理方法及装置 |
CN111182320A (zh) * | 2019-12-30 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 信息处理方法、装置、终端、服务器及存储介质 |
CN111611075A (zh) * | 2020-05-19 | 2020-09-01 | 北京达佳互联信息技术有限公司 | 虚拟资源请求处理方法、装置、电子设备及存储介质 |
CN111756820A (zh) * | 2020-06-11 | 2020-10-09 | 北京达佳互联信息技术有限公司 | 访问处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112769715A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107343030B (zh) | 信息推送方法、装置及系统 | |
CN112468833B (zh) | 直播互动信息处理方法、装置、终端、服务器及存储介质 | |
CN111031332B (zh) | 数据交互方法、装置、服务器及存储介质 | |
CN111866594B (zh) | 直播平台互动方法及装置、电子设备、存储介质 | |
CN106790043B (zh) | 直播应用中发送消息的方法及装置 | |
CN112769715B (zh) | 资源分配方法、装置、电子设备和存储介质 | |
CN113315986A (zh) | 直播互动、产品评价方法、装置、电子设备及存储介质 | |
CN107230060B (zh) | 一种账号挂失的方法和装置 | |
CN106454392A (zh) | 直播处理方法、装置及终端 | |
CN113573092B (zh) | 直播数据处理方法、装置、电子设备及存储介质 | |
CN107959757B (zh) | 用户信息处理方法、装置、app服务器和终端设备 | |
EP3226128B1 (en) | Method and device for online payment | |
WO2016011739A1 (zh) | 防伪验证方法、装置和系统 | |
US9667784B2 (en) | Methods and devices for providing information in voice service | |
CN106920170B (zh) | 交易提醒方法和装置 | |
CN112270561A (zh) | 电子资源发放方法、装置、电子设备及存储介质 | |
CN108335135B (zh) | 多媒体内容的分享方法及装置 | |
CN107145771B (zh) | 应用程序解锁方法、装置及终端 | |
CN112733058A (zh) | 数据处理系统、方法、装置、电子设备及存储介质 | |
CN106408304B (zh) | 账户安全管理方法和装置 | |
CN105809052A (zh) | 绑定信息记录方法及装置 | |
CN117321614A (zh) | 数据存证方法、装置、电子设备和非瞬态计算机可读存储介质 | |
CN107147633B (zh) | 密码输入方法及装置 | |
CN112468834B (zh) | 属性值更新方法、装置、电子设备、服务器及存储介质 | |
CN116449998A (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 |