多并发异步特性网络请求的处理方法及装置与流程

文档序号:32405136发布日期:2022-12-02 20:19阅读:53来源:国知局
多并发异步特性网络请求的处理方法及装置与流程

1.本发明涉及计算机技术领域,特别是涉及一种多并发异步特性网络请求的处理方法及装置。


背景技术:

2.异步特性网络请求指的是适用于融通业务的、具有特殊规则的异步网络请求。当并发多个异步特性网络请求时,微信的原生网络接口按照其设置的调用机制发送各个异步特性网络请求至服务器,在发送请求过程中,若用户的令牌失效,在进行令牌刷新后,后续未发送的请求都将被丢弃,无法恢复或者恢复较慢,即使请求发送成功,由于微信不支持promise式异步调用,在令牌刷新后,也容易导致服务器返回的消息都为空。


技术实现要素:

3.有鉴于此,本发明提供一种多并发异步特性网络请求的处理方法,通过该方法,可以使用promise工具对异步特性网络请求进行封装,并在令牌成功刷新后可以恢复后续未发送的各个请求,也能完整获取服务器返回的消息。
4.本发明还提供了一种多并发异步特性网络请求的处理装置,用以保证上述方法在实际中的实现及应用。
5.一种多并发异步特性网络请求的处理方法,包括:
6.当发生多起并发的异步特性网络请求时,对各个所述异步特性网络请求进行安全处理;
7.应用预先设置的promise工具对各个已处理的异步特性网络请求进行封装处理,并按照微信官方发送规则重新编写已封装的异步特性网络请求,获得微信支持发送的各个业务请求;
8.获取用户的大令牌和小令牌,所述大令牌和小令牌分别为所述用户上一次登录所述微信生成的session令牌和普通令牌;
9.确定各个所述业务请求对应的发送顺序,并通过所述微信按照所述发送顺序发送各个所述业务请求至服务器,在每次发送业务请求时,执行当前的业务请求对应的处理过程;
10.其中,所述执行当前的业务请求对应的处理过程包括:将所述小令牌嵌入所述当前的业务请求发送至所述服务器;当接收到所述服务器基于所述当前的业务请求反馈的第一令牌消息时,基于所述第一令牌消息,确定所述小令牌是否失效;若所述小令牌未失效,则基于所述第一令牌消息,执行所述当前的业务请求对应的业务逻辑;若所述小令牌失效,则确定所述当前的业务请求是否为首个业务请求;若所述当前的业务请求为首个业务请求,则将所述大令牌发送至所述服务器,使得所述服务器基于所述大令牌执行令牌刷新,并在所述令牌刷新成功后,将所述当前的业务请求重新发送至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第一业务消息,并基于所述第一业务消息执行所述当前
的业务请求对应的业务逻辑;若所述当前的业务请求非首个业务请求,则运行预设的触发器函数,基于所述触发器函数重新发送所述当前的业务请求至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第二业务消息,并基于所述第二业务消息执行所述当前的业务请求对应的业务逻辑。
11.上述的方法,可选的,所述对各个所述异步特性网络请求进行安全处理,包括:
12.获取预先设置的至少一个加密算法及每个所述加密算法对应的加密规则;
13.基于每个所述加密算法对应的加密规则,提取每个所述异步特性网络请求中每个所述加密规则所需的请求参数;
14.应用每个所述加密算法对应的加密规则对每个所述异步特性网络请求中的各个所述请求参数进行加密处理。
15.上述的方法,可选的,所述基于所述第一令牌消息,确定所述小令牌是否失效,包括:
16.检测所述第一令牌消息中是否包含的所述当前的业务请求对应的业务消息;
17.若所述第一令牌消息中不包含的所述当前的业务请求对应的业务消息,则确定所述小令牌失效;
18.若所述第一令牌消息中包含的所述当前的业务请求对应的业务消息,则确定所述小令牌未失效。
19.上述的方法,可选的,所述运行预设的触发器函数,基于所述触发器函数发送所述当前的业务请求至所述服务器,包括:
20.复制所述当前的业务请求为目标请求;
21.将所述目标请求与预设的resolve函数关联,生成所述目标请求对应的触发器函数;
22.将所述触发器函数加入预先设置的预设的队列中,所述队列中包含至少一个触发器函数,所述队列中的触发器函数按照加入顺序依次运行;
23.当所述队列中运行所述目标请求对应的触发器函数时,基于所述触发器函数发送所述当前的业务请求至所述服务器。
24.上述的方法,可选的,还包括:
25.若所述令牌刷新失败,则停止向所述服务器发送所述当前的业务请求以及待发送至所述服务器的业务请求;
26.提示所述用户重新登录所述微信,并清除所述微信中各个所述异步特性网络请求关联的所有缓存。
27.一种多并发异步特性网络请求的处理装置,包括:
28.处理单元,用于当发生多起并发的异步特性网络请求时,对各个所述异步特性网络请求进行安全处理;
29.编写单元,用于应用预先设置的promise工具对各个已处理的异步特性网络请求进行封装处理,并按照微信官方发送规则重新编写已封装的异步特性网络请求,获得微信支持发送的各个业务请求;
30.获取单元,用于获取用户的大令牌和小令牌,所述大令牌和小令牌分别为所述用户上一次登录所述微信生成的session令牌和普通令牌;
31.发送单元,用于确定各个所述业务请求对应的发送顺序,并通过所述微信按照所述发送顺序发送各个所述业务请求至服务器,在每次发送业务请求时,执行当前的业务请求对应的处理过程;
32.执行单元,用于执行当前的业务请求对应的处理过程,包括:将所述小令牌嵌入所述当前的业务请求发送至所述服务器;当接收到所述服务器基于所述当前的业务请求反馈的第一令牌消息时,基于所述第一令牌消息,确定所述小令牌是否失效;若所述小令牌未失效,则基于所述第一令牌消息,执行所述当前的业务请求对应的业务逻辑;若所述小令牌失效,则确定所述当前的业务请求是否为首个业务请求;若所述当前的业务请求为首个业务请求,则将所述大令牌发送至所述服务器,使得所述服务器基于所述大令牌执行令牌刷新,并在所述令牌刷新成功后,将所述当前的业务请求重新发送至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第一业务消息,并基于所述第一业务消息执行所述当前的业务请求对应的业务逻辑;若所述当前的业务请求非首个业务请求,则运行预设的触发器函数,基于所述触发器函数重新发送所述当前的业务请求至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第二业务消息,并基于所述第二业务消息执行所述当前的业务请求对应的业务逻辑。
33.上述的装置,可选的,所述处理单元,包括:
34.获取子单元,用于获取预先设置的至少一个加密算法及每个所述加密算法对应的加密规则;
35.提取子单元,用于基于每个所述加密算法对应的加密规则,提取每个所述异步特性网络请求中每个所述加密规则所需的请求参数;
36.处理子单元,用于应用各个所述加密算法,每个所述加密算法对应的加密规则对每个所述异步特性网络请求中的各个所述请求参数进行加密处理。
37.上述的装置,可选的,所述执行单元,包括:
38.检测子单元,用于检测所述第一令牌消息中是否包含的所述当前的业务请求对应的业务消息;
39.第一确定子单元,用于若所述第一令牌消息中不包含的所述当前的业务请求对应的业务消息,则确定所述小令牌失效;
40.第二确定子单元,用于若所述第一令牌消息中包含的所述当前的业务请求对应的业务消息,则确定所述小令牌未失效。
41.上述的装置,可选的,所述执行单元,包括:
42.复制子单元,用于复制所述当前的业务请求为目标请求;
43.关联子单元,用于将所述目标请求与预设的resolve函数关联,生成所述目标请求对应的触发器函数;
44.加入子单元,用于将所述触发器函数加入预先设置的预设的队列中,所述队列中包含至少一个触发器函数,所述队列中的触发器函数按照加入顺序依次运行;
45.发送子单元,用于当所述队列中运行所述目标请求对应的触发器函数时,基于所述触发器函数发送所述当前的业务请求至所述服务器。
46.上述的装置,可选的,还包括:
47.清除子单元,用于若所述令牌刷新失败,则停止向所述服务器发送所述当前的业
务请求以及待发送至所述服务器的业务请求;提示所述用户重新登录所述微信,并清除所述微信中各个所述异步特性网络请求关联的所有缓存。
48.一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的多并发异步特性网络请求的处理方法。
49.一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的多并发异步特性网络请求的处理方法。
50.与现有技术相比,本发明包括以下优点:
51.本发明提供一种多并发异步特性网络请求的处理方法,包括:当发生多起并发的异步特性网络请求时,对各个异步特性网络请求进行安全处理;应用promise工具对各个已处理的异步特性网络请求进行封装处理,并按照微信官方发送规则重新编写已封装的异步特性网络请求,获得微信支持发送的各个业务请求;获取用户的大令牌和小令牌;确定各个业务请求对应的发送顺序,并通过微信按照送顺序发送各个所述业务请求至服务器,在每次发送业务请求时,执行当前的业务请求对应的处理过程;其中,执行当前的业务请求对应的处理过程包括:将小令牌嵌入当前的业务请求发送至服务器;当接收到服务器基于当前的业务请求反馈的第一令牌消息时,基于第一令牌消息,确定小令牌是否失效;若小令牌未失效,则基于第一令牌消息,执行当前的业务请求对应的业务逻辑;若小令牌失效,则确定当前的业务请求是否为首个业务请求;若当前的业务请求为首个业务请求,则将大令牌发送至服务器,使得服务器基于大令牌执行令牌刷新,并在令牌刷新成功后,将当前的业务请求重新发送至服务器,并获取服务器基于当前的业务请求重新反馈的第一业务消息,并基于第一业务消息执行当前的业务请求对应的业务逻辑;若当前的业务请求非首个业务请求,则运行触发器函数,基于触发器函数发送当前的业务请求至服务器,并获取服务器基于当前的业务请求重新反馈的第二业务消息,并基于第二业务消息执行当前的业务请求对应的业务逻辑。应用本发明提供的方法,可以使用promise工具对异步特性网络请求进行封装,并在令牌成功刷新后可以恢复后续未发送的各个请求,也能完整获取服务器返回的消息。
附图说明
52.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
53.图1为本发明实施例提供的一种多并发异步特性网络请求的处理方法的方法流程图;
54.图2为本发明实施例提供的一种多并发异步特性网络请求的处理方法的又一方法流程图;
55.图3为本发明实施例提供的一种多并发异步特性网络请求的处理方法的再一方法流程图;
56.图4为本发明实施例提供的一种多并发异步特性网络请求的处理装置的装置结构
图;
57.图5为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
58.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
59.在本技术中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
60.本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
61.本发明实施例提供了一种多并发异步特性网络请求的处理方法,该方法可以应用在多种系统平台,其执行主体可以为计算机终端或各种移动设备的处理器,所述方法的方法流程图如图1所示,具体包括:
62.s101:当发生多起并发的异步特性网络请求时,对各个所述异步特性网络请求进行安全处理。
63.需要说明的是,对异步特性网络请求进行安全处理可以是对其进行加密处理,即对请求及逆行加密生成密文。
64.s102:应用预先设置的promise工具对各个已处理的异步特性网络请求进行封装处理,并按照微信官方发送规则重新编写已封装的异步特性网络请求,获得微信支持发送的各个业务请求。
65.需要说明的是,由于微信不支持promise式异步调用,因此在本发明中使用标准的promise异步状态封装,严格按照微信官方发送规则编写通用请求。在s102中的业务请求即为已封装处理并重新编写后的异步特性网络请求。
66.s103:获取用户的大令牌和小令牌。
67.其中,所述大令牌和小令牌分别为所述用户上一次登录所述微信生成的session令牌和普通令牌,两个令牌用于限制用户登录的时效。
68.需要说明的是,大令牌和小令牌分别代表两次过期状态;当小令牌失效时,可以继续访问服务器并进行令牌刷新成功后可以继续执行当前的业务逻辑,若大令牌也失效,令牌刷新则无意义,此时刷新失败,需要用户重新登录微信。
69.s104:确定各个所述业务请求对应的发送顺序,并通过所述微信按照所述发送顺序发送各个所述业务请求至服务器。
70.具体的,在每次发送业务请求时,对于每个业务请求,执行如下述s105~s110中的当前的业务请求对应的处理过程。
71.需要说明的是,通过微信指定的访问服务器的接口发送业务请求。
72.s105:将所述小令牌嵌入所述当前的业务请求发送至所述服务器。
73.可以理解的是,在每次发送业务请求时都会携带小令牌一同发送至服务器。
74.s106:当接收到所述服务器基于所述当前的业务请求反馈的第一令牌消息时,基于所述第一令牌消息,确定所述小令牌是否失效。
75.需要说明的是,服务器接收到当前的业务请求后,校验小令牌是否失效,若失效,则反馈的第一令牌消息中包含表征所述小令牌失效的失效标识,反之,则反馈的第一令牌消息中反馈与当前接收到的业务请求对应的业务消息。
76.其中,若所述小令牌未失效,则执行s107;若所述小令牌失效,则执行s108。
77.s107:基于所述第一令牌消息,执行所述当前的业务请求对应的业务逻辑。
78.具体的,所述基于所述第一令牌消息,确定所述小令牌是否失效,包括:
79.检测所述第一令牌消息中是否包含的所述当前的业务请求对应的业务消息;
80.若所述第一令牌消息中不包含的所述当前的业务请求对应的业务消息,则确定所述小令牌失效;
81.若所述第一令牌消息中包含的所述当前的业务请求对应的业务消息,则确定所述小令牌未失效。
82.需要说明的是,若小令牌未失效,则第一令牌消息中包含的业务消息用于表征服务器对当前业务请求进行处理后的处理结果,处理结果包括:resolve(成功处理)或reject(失败处理),resolve表征服务器对业务请求处理成功,reject表征服务器对业务请求处理失败。
83.s108:确定所述当前的业务请求是否为首个业务请求。
84.需要说明的是,在发送各个业务请求的过程中,由于大令牌和小令牌具有时效性,因此,每次发送请求后都需要验证小令牌是否失效,在失效的情况下,确定是否在第一次发送业务请求时是否已经失效。
85.其中,若所述当前的业务请求为首个业务请求,则s109;若所述当前的业务请求非首个业务请求,则执行s110。
86.s109:将所述大令牌发送至所述服务器,使得所述服务器基于所述大令牌执行令牌刷新,并在所述令牌刷新成功后,将所述当前的业务请求重新发送至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第一业务消息,并基于所述第一业务消息执行所述当前的业务请求对应的业务逻辑。
87.其中,若首个业务请求时小令牌就已经失效,则在后续的业务请求中,该小令牌都会处于失效状态,将大令牌发送至服务器,服务器执行令牌刷新,重新对小令牌进行刷新。
88.具体的,令牌刷新可以根据大令牌的时效性进行刷新,若大令牌未失效,则服务器可以成功刷新小令牌并将新的小令牌反馈给移动端,移动端将当前的业务请求中重新发送给服务器,在后续发送其他业务请求时,都会将新的小令牌嵌入其他业务请求进行发送并执行后续其他业务请求对应的请求处理过程。其中,第一业务消息用于表征服务器对当前业务请求进行处理后的处理结果,处理结果包括:resolve(成功处理)或reject(失败处
理),resolve表征服务器对业务请求处理成功,reject表征服务器对业务请求处理失败。若处理成功,则执行业务成功逻辑,若处理失败,则执行业务失败逻辑。
89.进一步地,若令牌刷新失败,则有以下执行过程:
90.若所述令牌刷新失败,则停止向所述服务器发送所述当前的业务请求以及待发送至所述服务器的业务请求;
91.提示所述用户重新登录所述微信,并清除所述微信中各个所述异步特性网络请求关联的所有缓存。
92.在本发明中,如刷新失败,即表示大令牌过期,需要重新登录,此时需清除所有缓存、终止全部请求并根据项目需求跳转至合适场景,进行重登录。如刷新成功,即可携带新获取的小令牌,重新发起当前业务请求,获得返回后,按需执行业务成功逻辑或失败逻辑。
93.s110:运行预设的触发器函数,基于所述触发器函数重新发送所述当前的业务请求至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第二业务消息,并基于所述第二业务消息执行所述当前的业务请求对应的业务逻辑。
94.需要说明的是,若小令牌失效且当前的业务请求非首个业务请求,表征在当前的业务请求之前发送的各个业务请求所携带的小令牌未失效,且首次业务请求也未失效,无需刷新令牌,可以继续后续的业务请求的发送,因此由触发函数重新发送当前的业务请求至服务器,以获得服务器反馈的第二业务消息。其中,第二业务消息用于表征服务器对当前业务请求进行处理后的处理结果,处理结果包括:resolve(成功处理)或reject(失败处理),resolve表征服务器对业务请求处理成功,reject表征服务器对业务请求处理失败。若处理成功,则执行业务成功逻辑,若处理失败,则执行业务失败逻辑。
95.本发明实施例提供的方法中,当发生多起异步特性网络请求时,对各个请求进行安全处理后应用promise工具进行封装并重新编写,重新编写后获得的业务请求符合微信官方发送规则,获取大令牌和小令牌,并在每次发送业务请求时携带小令牌。服务器在接收到请求后确定小令牌是否失效(过期),若是,则需要确定是否为首次业务请求。若为首次业务请求,需要向服务器发送大令牌执行令牌刷新,刷新成功后再重新发送当前的业务请求,若非首次业务请求,则需要通过触发器函数重新发送当前的业务请求。若小令牌未失效、或者重新发送当前的业务请求后,服务器会反馈对应的业务消息。其中,若发送请求时小令牌未失效,则服务器反馈的第一令牌消息中包含业务消息,移动端基于业务消息处理对应的业务逻辑;若刷新成功后发送的请求,服务器反馈第一业务消息,移动端基于第一业务消息处理对应的业务逻辑;若非首次业务请求的情况下由触发器函数重新发送请求,则服务器反馈第二业务消息,移动端基于第二业务消息处理对应的业务逻辑。
96.应用本发明提供的方法,可以使用promise工具对异步特性网络请求进行封装,并在令牌成功刷新后可以恢复后续未发送的各个请求,也能完整获取服务器返回的消息。
97.本发明实施例提供的方法中,所述对各个所述异步特性网络请求进行安全处理的过程如图2所示,具体可以包括:
98.s201:获取预先设置的至少一个加密算法及每个所述加密算法对应的加密规则。
99.需要说明的是,可以由服务器、移动端或技术人员根据实际应用场景设置一个或多个加密算法,每个加密算法对应的加密规则用于指定加密的参数以及加密的方式。听过加密算法进行安全签名或者对请求体加密。
100.其中,安全签名是指,将请求地址、令牌字符串等各部分字符,通过特定规则的拆分、组合,并使用特定加密函数生成的密文(签名)。请求体加密是指,将请求的body对象(请求体对象,存放请求参数)的内容数据,使用特定加密函数生成密文的过程。
101.s202:基于每个所述加密算法对应的加密规则,提取每个所述异步特性网络请求中每个所述加密规则所需的请求参数。
102.s203:应用各个所述加密算法,每个所述加密算法对应的加密规则对每个所述异步特性网络请求中的各个所述请求参数进行加密处理。
103.进一步地,除了上述s201中已设置的各个加密算法之外,后续还可以新增新的加密算法和加密规则。例如:除安全签名、请求体加密等先行规则以外的其他处理规则,例如,假设公司升级了请求的安全措施,要在请求头(header)里加入新的识别码,那么只需将“增加新识别码”的工序直接插在已有处理工序的合适点位即可(比如插在安全签名之前),不影响其他流程。
104.本发明实施例提供的方法中,规避了异步标记和同步回调,使用标准的promise异步状态封装,严格按照微信官方规则编写通用请求。每一个新请求都将先行处理安全签名、请求体加密等特殊校验处理,如有新增加密算法和规则,直接加入校验逻辑即可,无需考虑令牌过期的处理顺序。通过promise的“状态处置”,可按照业务自有逻辑,将对象状态调整为resolve(成功处理)和reject(失败处理),从而实现全业务场景的标准异步返回。
105.本发明中,增加promise封装,同时留存了官方api返回的task对象(其中包含了进度回调),保障上传/下载接口异步行为的同时,保护了进度数据。
106.本发明实施例提供的方法中,所述运行预设的触发器函数,基于所述触发器函数发送所述当前的业务请求至所述服务器的过程如图3所示,具体可以包括:
107.s301:复制所述当前的业务请求为目标请求。
108.其中,复制的目标请求与当前的业务请求一致。
109.s302:将所述目标请求与预设的resolve函数关联,生成所述目标请求对应的触发器函数。
110.在本发明中,在s302中将目标请求与resolve函数绑定。该resolve函数为当前的业务请求的resolve函数。
111.s303:将所述触发器函数加入预先设置的预设的队列中。
112.其中,所述队列中包含至少一个触发器函数,所述队列中的触发器函数按照加入顺序依次运行。
113.s304:当所述队列中运行所述目标请求对应的触发器函数时,基于所述触发器函数发送所述当前的业务请求至所述服务器。
114.在本发明实施例中,若当前的业务请求为非首个接到令牌过期错误的业务请求,将当前的业务请求,并配合当前的业务请求的resolve函数,存储一个触发器函数进入队列。该触发器函数一旦运行,其会发出先前复制好的请求(目标请求),又因为原始请求(当前的业务请求)的resolve函数依赖了复制的目标请求,原始请求会按照复制请求的返回结果,处置自身为resolve或reject状态,从而执行原始请求的业务成功逻辑或失败逻辑。
115.基于上述实施例提供的方法,多并发异步特性网络请求的处理过程具体可以包括如下过程:
116.在多并发业务的情景中,每个请求都将按通用业务要求进行签名、加密操作等,并分别、依次新建promise异步对象,使用微信官方api发出请求。
117.获取大令牌和小令牌,用于限制用户登录时效。上次登录时保存下的令牌有两种:普通令牌(小令牌)、session令牌(大令牌)。小令牌将被每个请求携带,访问服务器。如服务端发现小令牌过期,将返回错误通知移动端。
118.当小令牌未过期时,将返回正常数据或业务错误信息,分别通过resolve和reject处置当前请求的promise对象状态,从而执行预先设定的“业务成功逻辑”或“业务失败逻辑”。
119.当小令牌过期时,需携带大令牌向服务器请求令牌刷新,此时,多并发请求走向两种路径:
120.其一,首个接到令牌过期错误的请求,将直接进入令牌刷新流程,向服务器请求令牌刷新。如刷新失败,即表示大令牌过期,需要重新登录,此时需清除所有缓存、终止全部请求并根据项目需求跳转至合适场景,进行重登录。如刷新成功,即可携带新获取的小令牌,重新发起当前业务请求,获得返回后,按需执行业务成功逻辑或失败逻辑。
121.其二,非首个接到令牌过期错误的后续请求,将复制当前请求,并配合当前请求的resolve函数,存储一个触发器函数进入队列。该触发器函数一旦运行,即会发出先前复制好的请求,又因为原始请求的resolve函数依赖了复制请求,原始请求会按照复制请求的返回结果,处置自身为resolve或reject状态,从而执行原始请求的业务成功逻辑或失败逻辑。
122.上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
123.与图1所述的方法相对应,本发明实施例还提供了一种多并发异步特性网络请求的处理装置,用于对图1中方法的具体实现,本发明实施例提供的多并发异步特性网络请求的处理装置可以应用计算机终端或各种移动设备中,其结构示意图如图4所示,具体包括:
124.处理单元401,用于当发生多起并发的异步特性网络请求时,对各个所述异步特性网络请求进行安全处理;
125.编写单元402,用于应用预先设置的promise工具对各个已处理的异步特性网络请求进行封装处理,并按照微信官方发送规则重新编写已封装的异步特性网络请求,获得微信支持发送的各个业务请求;
126.获取单元403,用于获取用户的大令牌和小令牌,所述大令牌和小令牌分别为所述用户上一次登录所述微信生成的session令牌和普通令牌;
127.发送单元404,用于确定各个所述业务请求对应的发送顺序,并通过所述微信按照所述发送顺序发送各个所述业务请求至服务器,在每次发送业务请求时,执行当前的业务请求对应的处理过程;
128.执行单元405,用于执行当前的业务请求对应的处理过程,包括:将所述小令牌嵌入所述当前的业务请求发送至所述服务器;当接收到所述服务器基于所述当前的业务请求反馈的第一令牌消息时,基于所述第一令牌消息,确定所述小令牌是否失效;若所述小令牌未失效,则基于所述第一令牌消息,执行所述当前的业务请求对应的业务逻辑;若所述小令牌失效,则确定所述当前的业务请求是否为首个业务请求;若所述当前的业务请求为首个业务请求,则将所述大令牌发送至所述服务器,使得所述服务器基于所述大令牌执行令牌
刷新,并在所述令牌刷新成功后,将所述当前的业务请求重新发送至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第一业务消息,并基于所述第一业务消息执行所述当前的业务请求对应的业务逻辑;若所述当前的业务请求非首个业务请求,则运行预设的触发器函数,基于所述触发器函数重新发送所述当前的业务请求至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第二业务消息,并基于所述第二业务消息执行所述当前的业务请求对应的业务逻辑。
129.本发明实施例提供的装置中,当发生多起异步特性网络请求时,对各个请求进行安全处理后应用promise工具进行封装并重新编写,重新编写后获得的业务请求符合微信官方发送规则,获取大令牌和小令牌,并在每次发送业务请求时携带小令牌。服务器在接收到请求后确定小令牌是否失效(过期),若是,则需要确定是否为首次业务请求。若为首次业务请求,需要向服务器发送大令牌执行令牌刷新,刷新成功后再重新发送当前的业务请求,若非首次业务请求,则需要通过触发器函数重新发送当前的业务请求。若小令牌未失效、或者重新发送当前的业务请求后,服务器会反馈对应的业务消息。其中,若发送请求时小令牌未失效,则服务器反馈的第一令牌消息中包含业务消息,移动端基于业务消息处理对应的业务逻辑;若刷新成功后发送的请求,服务器反馈第一业务消息,移动端基于第一业务消息处理对应的业务逻辑;若非首次业务请求的情况下由触发器函数重新发送请求,则服务器反馈第二业务消息,移动端基于第二业务消息处理对应的业务逻辑。
130.应用本发明提供的装置,可以使用promise工具对异步特性网络请求进行封装,并在令牌成功刷新后可以恢复后续未发送的各个请求,也能完整获取服务器返回的消息。
131.本发明实施例提供的装置中,所述处理单元,包括:
132.获取子单元,用于获取预先设置的至少一个加密算法及每个所述加密算法对应的加密规则;
133.提取子单元,用于基于每个所述加密算法对应的加密规则,提取每个所述异步特性网络请求中每个所述加密规则所需的请求参数;
134.处理子单元,用于应用各个所述加密算法,每个所述加密算法对应的加密规则对每个所述异步特性网络请求中的各个所述请求参数进行加密处理。
135.本发明实施例提供的装置中,所述执行单元,包括:
136.检测子单元,用于检测所述第一令牌消息中是否包含的所述当前的业务请求对应的业务消息;
137.第一确定子单元,用于若所述第一令牌消息中不包含的所述当前的业务请求对应的业务消息,则确定所述小令牌失效;
138.第二确定子单元,用于若所述第一令牌消息中包含的所述当前的业务请求对应的业务消息,则确定所述小令牌未失效。
139.本发明实施例提供的装置中,所述执行单元,包括:
140.复制子单元,用于复制所述当前的业务请求为目标请求;
141.关联子单元,用于将所述目标请求与预设的resolve函数关联,生成所述目标请求对应的触发器函数;
142.加入子单元,用于将所述触发器函数加入预先设置的预设的队列中,所述队列中包含至少一个触发器函数,所述队列中的触发器函数按照加入顺序依次运行;
143.发送子单元,用于当所述队列中运行所述目标请求对应的触发器函数时,基于所述触发器函数发送所述当前的业务请求至所述服务器。
144.本发明实施例提供的装置中,还包括:
145.清除子单元,用于若所述令牌刷新失败,则停止向所述服务器发送所述当前的业务请求以及待发送至所述服务器的业务请求;提示所述用户重新登录所述微信,并清除所述微信中各个所述异步特性网络请求关联的所有缓存。
146.以上本发明实施例公开的多并发异步特性网络请求的处理装置中各个单元及子单元的具体工作过程,可参见本发明上述实施例公开的多并发异步特性网络请求的处理方法中的对应内容,这里不再进行赘述。
147.本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述多并发异步特性网络请求的处理方法。
148.本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:
149.当发生多起并发的异步特性网络请求时,对各个所述异步特性网络请求进行安全处理;
150.应用预先设置的promise工具对各个已处理的异步特性网络请求进行封装处理,并按照微信官方发送规则重新编写已封装的异步特性网络请求,获得微信支持发送的各个业务请求;
151.获取用户的大令牌和小令牌,所述大令牌和小令牌分别为所述用户上一次登录所述微信生成的session令牌和普通令牌;
152.确定各个所述业务请求对应的发送顺序,并通过所述微信按照所述发送顺序发送各个所述业务请求至服务器,在每次发送业务请求时,执行当前的业务请求对应的处理过程;
153.其中,所述执行当前的业务请求对应的处理过程包括:将所述小令牌嵌入所述当前的业务请求发送至所述服务器;当接收到所述服务器基于所述当前的业务请求反馈的第一令牌消息时,基于所述第一令牌消息,确定所述小令牌是否失效;若所述小令牌未失效,则基于所述第一令牌消息,执行所述当前的业务请求对应的业务逻辑;若所述小令牌失效,则确定所述当前的业务请求是否为首个业务请求;若所述当前的业务请求为首个业务请求,则将所述大令牌发送至所述服务器,使得所述服务器基于所述大令牌执行令牌刷新,并在所述令牌刷新成功后,将所述当前的业务请求重新发送至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第一业务消息,并基于所述第一业务消息执行所述当前的业务请求对应的业务逻辑;若所述当前的业务请求非首个业务请求,则运行预设的触发器函数,基于所述触发器函数重新发送所述当前的业务请求至所述服务器,并获取所述服务器基于所述当前的业务请求反馈的第二业务消息,并基于所述第二业务消息执行所述当前的业务请求对应的业务逻辑。
154.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部
分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
155.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。
156.为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
157.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1