一种服务提供方法、服务器、客户端及装置与流程

文档序号:27184268发布日期:2021-11-02 11:44阅读:126来源:国知局
一种服务提供方法、服务器、客户端及装置与流程

本发明涉及网络技术领域,尤其涉及一种服务提供方法、服务器、客户端及装置。

背景技术

目前有很多基于互联网的抢购、抢答、抢红包等增值业务,这些业务一般都仅对有限数量的用户提供最终的服务结果。例如对于抢购业务,按照提交订单的先后顺序对抢购请求进行排序,仅其中排序靠前的一定数量的用户可以抢购成功。但由于存在网络延时,先提交请求的用户,可能由于网络延时原因,其提交的请求反而后到达服务器,从而导致抢购失败;或者由于网络延时,导致收到服务器开通服务请求接口的时间晚于其他用户,从而导致提交请求的时间被顺延,进而导致抢购失败。



技术实现要素:

本发明所要解决的技术问题是针对现有技术的上述不足,提供一种服务提供方法、服务器、客户端及装置,用以解决相关技术中由于存在网络延时,先提交请求的用户,可能由于网络延时原因,其提交的请求反而后到达服务器,从而导致抢购失败;或者由于网络延时,导致收到服务器开通服务请求接口的时间晚于其他用户,从而导致提交请求的时间被顺延,进而导致抢购失败的问题。

第一方面,本发明实施例提供一种服务提供方法,应用于服务器,所述方法包括:

向各个客户端发送用于指示服务请求接口已开通的指示信息,所述指示信息用于触发各个所述客户端接收到所述指示信息时,记录接收到所述指示信息时的当前时间,并在界面上提供向所述服务器提交服务请求的接口;

接收多个所述客户端提交的服务请求,所述服务请求携带时间差值,所述时间差值为所述客户端提交所述服务请求时的时间与接收到所述指示信息时的时间之差;

根据所述时间差值获取可获得服务的客户端。

优选地,所述根据所述时间差值获取可获得服务的客户端之后,所述方法还包括:

根据所述服务请求为所述可获得服务的客户端提供服务。

优选地,所述根据所述时间差值获取可获得服务的客户端,具体包括:

判断所述服务请求的数量是否大于预设服务数量;

若是,则对接收到的所有所述服务请求按照所述时间差值从小到大进行排序,并将排序靠前的所述预设服务数量的所述服务请求所对应的客户端作为所述可获得服务的客户端。

优选地,所述接收多个所述客户端提交的服务请求,具体包括:

接收当前周期内多个所述客户端提交的服务请求;

所述根据所述时间差值获取可获得服务的客户端,具体包括:

S1,获取预设服务数量中未服务的服务数量;

S2,判断所述当前周期内所述服务请求的数量是否大于等于所述未服务的服务数量;

S3,若是,则对接收到的所述当前周期内的所有所述服务请求按照所述时间差值从小到大进行排序,并将排序靠前的所述未服务的服务数量的所述服务请求所对应的客户端作为所述可获得服务的客户端,并结束本流程;若否,则执行步骤S4;

S4,将接收到的所述当前周期内的所有所述服务请求所对应的客户端作为所述可获得服务的客户端;

S5,接收下一周期内多个所述客户端提交的服务请求,并将所述下一周期作为当前周期,返回执行步骤S1。

优选地,所述接收当前周期内多个所述客户端提交的服务请求之前,所述方法还包括:

确定所述当前周期的起始时间,其中,所述当前周期的起始时间为服务器接收到第一个所述服务请求时的当前时间。

第二方面,本发明实施例提供一种服务提供方法,应用于客户端,所述方法包括:

接收服务器发送的用于指示服务请求接口已开通的指示信息;

记录接收到所述指示信息时的当前时间,并在界面上提供向所述服务器提交服务请求的接口;

当检测到用户的提交操作时,向所述服务器提交服务请求,所述服务请求携带提交所述服务请求时的当前时间与接收到所述指示信息时的当前时间的时间差值,以使所述服务器根据接收到的所述时间差值获取可获得服务的客户端。

优选地,所述当检测到用户的提交操作时,向所述服务器提交服务请求,具体包括:

当检测到用户的提交操作时,获取提交所述服务请求时的当前时间;

计算提交所述服务请求时的当前时间与接收到所述指示信息时的当前时间的时间差值;

向所述服务器提交携带有所述时间差值的服务请求。

优选地,所述在界面上提供向所述服务器提交服务请求的接口,具体包括:

在界面上弹出用于提交所述服务请求的预设对象;或者,

将界面上预先显示的用于提交所述服务请求的预设对象从不可用状态切换至可用状态;

其中,所述预设对象的所述不可用状态和所述可用状态具有不同的颜色。

第三方面,本发明实施例提供一种服务器,包括:

指示信息发送模块,用于向各个客户端发送用于指示服务请求接口已开通的指示信息,所述指示信息用于触发各个所述客户端接收到所述指示信息时,记录接收到所述指示信息时的当前时间,并在界面上提供向所述服务器提交服务请求的接口;

服务请求接收模块,与所述指示信息发送模块连接,用于接收多个所述客户端提交的服务请求,所述服务请求携带时间差值,所述时间差值为所述客户端提交所述服务请求时的时间与接收到所述指示信息时的时间之差;

服务提供模块,与所述服务请求接收模块连接,用于根据所述时间差值获取可获得服务的客户端。

第四方面,本发明实施例提供一种客户端,包括:

指示信息接收模块,用于接收服务器发送的用于指示服务请求接口已开通的指示信息;

记录接口模块,与所述指示信息接收模块连接,用于记录接收到所述指示信息时的当前时间,并在界面上提供向所述服务器提交服务请求的接口;

服务请求提交模块,与所述记录接口模块连接,用于当检测到用户的提交操作时,向所述服务器提交服务请求,所述服务请求携带提交所述服务请求时的当前时间与接收到所述指示信息时的当前时间的时间差值,以使所述服务器根据接收到的所述时间差值获取可获得服务的客户端。

第五方面,本发明实施例提供一种服务提供装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现上述第一方面或第二方面所述的服务提供方法。

本发明实施例提供的服务提供方法、服务器、客户端及装置,由服务器向各个客户端发送用于指示服务请求接口已开通的指示信息,以使各个客户端接收到所述指示信息时,记录接收到该指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口,当客户端检测到用户的提交操作时,向服务器提交服务请求,服务请求携带时间差值,时间差值为客户端提交服务请求时的时间与接收到指示信息时的时间之差,以使服务器接收到多个客户端的服务请求后,根据时间差值获取可获得服务的客户端,从而服务器能够根据服务请求为可获得服务的客户端提供服务。由于时间差值仅与用户抢购操作过程所花费的时间有关,而与网络传输时延无关,进而能够提升抢购的公平性,避免客户端因网络延时而导致的抢购失败的问题,解决了相关技术中由于存在网络延时,先提交请求的用户,可能由于网络延时原因,其提交的请求反而后到达服务器,从而导致抢购失败;或者由于网络延时,导致收到服务器开通服务请求接口的时间晚于其他用户,从而导致提交请求的时间被顺延,进而导致抢购失败的问题。

附图说明

图1:为本发明实施例1的一种服务提供方法的流程图;

图2:为本发明实施例2的一种服务提供方法的流程图;

图3:为本发明实施例3的一种服务器的结构示意图;

图4:为本发明实施例4的一种客户端的结构示意图;

图5:为本发明实施例5的一种服务提供装置的结构示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面将结合附图对本发明实施方式作进一步地详细描述。

可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。

可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。

可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。

可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。

可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。

可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。

可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。

申请概述

现有的互联网服务模式下,用户提交服务请求之前,比如抢购请求,需要等可获得服务器向客户端发送“开始抢购”指示。客户端收到指示后,立即改变客户端界面上对应对象的属性或状态(例如:将提交订单按钮由灰色变为彩色),以使用户可以开始提交抢购请求。然而,由于服务器根据服务请求到达自身的时间获取可获得服务的客户端,而客户端接收服务器发送的“开始抢购”指示存在网络延时,客户端向服务器提交服务请求也存在网络延时,且各个客户端的网络延时不同,进而容易导致抢购速度快的用户反而抢购失败,无法保证抢购的公平性。

针对上述技术问题,本申请的构思是提供一种服务提供方法,客户端在接收到服务器的指示信息时,记录接收到该指示信息时的当前时间,并当客户端检测到用户的提交操作时,向服务器提交携带有时间差值的服务请求,该时间差值为客户端提交服务请求时的时间与接收到指示信息时的时间之差,服务器再根据时间差值获取可获得服务的客户端。由于时间差值仅与用户抢购操作过程所花费的时间有关,而与网络传输时延无关,因此,即使各个客户端开通服务请求接口的时间不一致或者其提交的请求后到达服务器,也能保证抢购速度快的用户抢购成功,进而能够提升抢购的公平性,避免客户端因网络延时而导致的抢购失败的问题。

在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。

实施例1:

本实施例提供一种服务提供方法,应用于服务器,如图1所示,该方法包括:

步骤S102:向各个客户端发送用于指示服务请求接口已开通的指示信息,指示信息用于触发各个客户端接收到指示信息时,记录接收到指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口。

在本实施例中,各个客户端可以是预计将接收到该指示消息的客户端,例如,在直播场景中,预计将接收到该指示消息的客户端为正在观看该直播视频的客户端。客户端接收到该指示信息时,记录接收到该指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口。其中,在界面上提供向服务器提交服务请求的接口比如可以是在界面上弹出用于提交服务请求的预设对象;或者,将界面上预先显示的用于提交服务请求的预设对象从不可用状态切换至可用状态,预设对象可以是按钮,文字,图片等等,其中,预设对象的不可用状态和可用状态具有不同的属性,该属性可以是颜色、大小、透明度等等。比如,从不可用状态切换至可用状态可以是将按钮由灰色变为彩色。

步骤S104:接收多个客户端提交的服务请求,服务请求携带时间差值,时间差值为客户端提交服务请求时的时间与接收到指示信息时的时间之差。

在本实施例中,当客户端检测到用户的提交操作时,比如,用户点击由灰色变为彩色的按钮,则获取用户提交服务请求时的当前时间,并计算提交服务请求时的当前时间与接收到指示信息时的当前时间的时间差值,单位可以为毫秒,以及向服务器提交携带有该时间差值的服务请求。

步骤S106:根据时间差值获取可获得服务的客户端。

在本实施例中,服务器接收到客户端发送的服务请求之后,判断服务请求的数量是否大于预设服务数量;若是,则对接收到的所有服务请求按照时间差值从小到大进行排序,并将排序靠前的预设服务数量的服务请求所对应的客户端作为可获得服务的客户端,并根据服务请求为可获得服务的客户端提供服务。其中,若遇到时间值相同,但排序超出预设服务数量的情况,例如预设服务数量为1000个,但排序在第901位到2000位的服务请求所对应的时间差值相同,那么再在1100个服务请求中随机选择100个请求进行服务。此外,若服务请求的数量等于预设服务数量,则服务器为所有客户端提供服务。

可选地,为避免因为预设服务数量超过服务请求的数量而导致的无法提供服务的情况发生,以及为了避免无期限的等待,服务器可以从发送指示信息或接收到第一个服务请求之后起,以一个预设时间段(例如每1秒钟)为周期,对每个周期内接收到的服务请求进行排序,并按照剩余未服务的服务数量获取可获得服务的客户端,直到可获得服务的客户端达到预设服务数量为止。具体地,服务器接收到当前周期内多个客户端提交的服务请求后,可以执行如下步骤:

S1,获取预设服务数量中未服务的服务数量;

S2,判断当前周期内服务请求的数量是否大于等于未服务的服务数量;

S3,若是,则对接收到的当前周期内的所有服务请求按照时间差值从小到大进行排序,并将排序靠前的未服务的服务数量的服务请求所对应的客户端作为可获得服务的客户端,并结束本流程;若否,则执行步骤S4;

S4,将接收到的当前周期内的所有服务请求所对应的客户端作为可获得服务的客户端;

S5,接收下一周期内多个客户端提交的服务请求,并将下一周期作为当前周期,返回执行步骤S1。

在本实施例中,假设预设服务数量为1000个,但服务器在第一个周期内只接收到900个客户端的服务器请求,则该900个客户端均为可获得服务的客户端,服务器可以先为该900个客户端提供服务,若在第二个周期内服务器接收到200个客户端的服务器请求,此时,剩余未服务的服务数量为100个,而200大于100,则服务器对该200个服务请求按照时间差值从小到大进行排序,并将排序靠前的100的服务请求所对应的客户端作为可获得服务的客户端,并为其提供服务,同时结束该流程。

在一个具体的实施例中,该服务提供方法可以包括如下步骤:

(1)客户端接收到来自服务器的用于指示服务请求接口已开通的指示信息时,提取客户端的当前时间T1。

(2)客户端根据用户的提交操作(例如以“点击提交按钮”为标志的提交操作)向服务器提交服务请求时,提取客户端的当前时间T2。

(3)客户端将T2和T1的差值,添加到客户端提交的服务请求数据包之中,发送给服务器。

(4)服务器收到所有客户端的服务器请求之后,按照其中包含的“T2和T1的差值”,对服务请求按“T2和T1的差值”从小到大进行排序。

(5)服务器按照预先设定的可提供的服务数量(例如,抢购的商品数量,或红包份数)去排序靠前的相同数量的服务请求,为这些请求提供服务(例如,通知客户端订单提交成功,或显示抢得的红包金额)。

本发明实施例提供的服务提供方法,由服务器向各个客户端发送用于指示服务请求接口已开通的指示信息,以使各个客户端接收到所述指示信息时,记录接收到该指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口,当客户端检测到用户的提交操作时,向服务器提交服务请求,服务请求携带时间差值,时间差值为客户端提交服务请求时的时间与接收到指示信息时的时间之差,以使服务器接收到多个客户端的服务请求后,根据时间差值获取可获得服务的客户端,从而服务器能够根据服务请求为可获得服务的客户端提供服务。由于时间差值仅与用户抢购操作过程所花费的时间有关,而与网络传输时延无关,进而能够提升抢购的公平性,避免客户端因网络延时而导致的抢购失败的问题,解决了相关技术中由于存在网络延时,先提交请求的用户,可能由于网络延时原因,其提交的请求反而后到达服务器,从而导致抢购失败;或者由于网络延时,导致收到服务器开通服务请求接口的时间晚于其他用户,从而导致提交请求的时间被顺延,进而导致抢购失败的问题。

实施例2:

如图2所示,本实施例提供一种服务提供方法,应用于客户端,所述方法包括:

步骤S202:接收服务器发送的用于指示服务请求接口已开通的指示信息;

步骤S204:记录接收到指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口;

步骤S206:当检测到用户的提交操作时,向服务器提交服务请求,服务请求携带提交服务请求时的当前时间与接收到指示信息时的当前时间的时间差值,以使服务器根据接收到的时间差值获取可获得服务的客户端。

可选地,当检测到用户的提交操作时,向服务器提交服务请求,具体包括:

当检测到用户的提交操作时,获取提交服务请求时的当前时间;

计算提交服务请求时的当前时间与接收到指示信息时的当前时间的时间差值;

向服务器提交携带有时间差值的服务请求。

可选地,在界面上提供向服务器提交服务请求的接口,具体包括:

在界面上弹出用于提交服务请求的预设对象;或者,

将界面上预先显示的用于提交服务请求的预设对象从不可用状态切换至可用状态;

其中,预设对象的不可用状态和可用状态具有不同的颜色。

实施例3:

如图3所示,本实施例提供一种服务器,包括:

指示信息发送模块12,用于向各个客户端发送用于指示服务请求接口已开通的指示信息,指示信息用于触发各个客户端接收到指示信息时,记录接收到指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口;

服务请求接收模块14,与所述指示信息发送模块12连接,用于接收多个客户端提交的服务请求,服务请求携带时间差值,时间差值为客户端提交服务请求时的时间与接收到指示信息时的时间之差;

服务提供模块16,与所述服务请求接收模块14连接,用于根据时间差值获取可获得服务的客户端。

可选地,还可以包括:

服务模块,用于根据服务请求为可获得服务的客户端提供服务。

可选地,服务提供模块16具体可以包括:

第一判断单元,用于判断服务请求的数量是否大于预设服务数量;

第一排序单元,用于若是,则对接收到的所有服务请求按照时间差值从小到大进行排序,并将排序靠前的预设服务数量的服务请求所对应的客户端作为可获得服务的客户端。

可选地,服务请求接收模块14具体用于接收当前周期内多个客户端提交的服务请求;

可选地,服务提供模块16具体可以包括:

服务数量获取单元,用于获取预设服务数量中未服务的服务数量;

第二判断单元,用于判断当前周期内服务请求的数量是否大于等于未服务的服务数量;

第二排序单元,用于若是,则对接收到的当前周期内的所有服务请求按照时间差值从小到大进行排序,并将排序靠前的未服务的服务数量的服务请求所对应的客户端作为可获得服务的客户端;

客户端获取单元,用于将接收到的当前周期内的所有服务请求所对应的客户端作为可获得服务的客户端;

循环单元,用于接收下一周期内多个客户端提交的服务请求,并将下一周期作为当前周期。

可选地,还可以包括:

起始时间确定模块,用于确定当前周期的起始时间,其中,当前周期的起始时间为服务器接收到第一个服务请求时的当前时间。

实施例4:

如图4所示,本实施例提供一种客户端,包括:

指示信息接收模块32,用于接收服务器发送的用于指示服务请求接口已开通的指示信息;

记录接口模块34,与所述指示信息接收模块32连接,用于记录接收到指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口;

服务请求提交模块36,与所述记录接口模块34连接,用于当检测到用户的提交操作时,向服务器提交服务请求,服务请求携带提交服务请求时的当前时间与接收到指示信息时的当前时间的时间差值,以使服务器根据接收到的时间差值获取可获得服务的客户端。

可选地,服务请求提交模块36具体可以包括:

当前时间获取单元,用于当检测到用户的提交操作时,获取提交服务请求时的当前时间;

时间差值计算单元,用于计算提交服务请求时的当前时间与接收到指示信息时的当前时间的时间差值;

服务请求提交单元,用于向服务器提交携带有时间差值的服务请求。

可选地,记录接口模块34具体用于记录接收到所述指示信息时的当前时间,并在界面上弹出用于提交服务请求的预设对象;或者,将界面上预先显示的用于提交服务请求的预设对象从不可用状态切换至可用状态;

其中,预设对象的不可用状态和可用状态具有不同的颜色。

实施例5:

参考图5,本实施例提供一种服务提供装置,包括存储器21和处理器22,存储器21中存储有计算机程序,处理器22被设置为运行所述计算机程序以执行实施例1或实施例2中的服务提供方法。

其中,存储器21与处理器22连接,存储器21可采用闪存或只读存储器或其他存储器,处理器22可采用中央处理器或单片机。

实施例2至实施例5提供的服务提供方法、服务器、客户端及装置,由服务器向各个客户端发送用于指示服务请求接口已开通的指示信息,以使各个客户端接收到所述指示信息时,记录接收到该指示信息时的当前时间,并在界面上提供向服务器提交服务请求的接口,当客户端检测到用户的提交操作时,向服务器提交服务请求,服务请求携带时间差值,时间差值为客户端提交服务请求时的时间与接收到指示信息时的时间之差,以使服务器接收到多个客户端的服务请求后,根据时间差值获取可获得服务的客户端,从而服务器能够根据服务请求为可获得服务的客户端提供服务。由于时间差值仅与用户抢购操作过程所花费的时间有关,而与网络传输时延无关,进而能够提升抢购的公平性,避免客户端因网络延时而导致的抢购失败的问题,解决了相关技术中由于存在网络延时,先提交请求的用户,可能由于网络延时原因,其提交的请求反而后到达服务器,从而导致抢购失败;或者由于网络延时,导致收到服务器开通服务请求接口的时间晚于其他用户,从而导致提交请求的时间被顺延,进而导致抢购失败的问题。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1