一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

报文处理方法和系统、终端及计算机可读存储介质与流程

2022-06-01 18:28:29 来源:中国专利 TAG:


1.本公开涉及富媒体通信(rcs)技术领域,尤其是一种报文处理方法和系统、终端及计算机可读存储介质。


背景技术:

2.rcs业务基于传输控制协议(tcp)实现,需要在一定时间间隔内由客户端向服务器发送心跳报文以保持网络连接。


技术实现要素:

3.发明人知晓的一种相关技术中,在终端包括两张用户识别卡的场景下,两张用户识别卡各自采用固定周期来发送心跳报文。发明人注意到,这将导致终端经常被唤醒,占用终端的前端资源,并且导致电量消耗较多。
4.为了解决上述问题,本公开实施例提出了如下解决方案。
5.根据本公开实施例的一方面,提供一种报文处理方法,包括:终端确定第一用户识别卡实现心跳保活的第一最大周期和第二识别用户卡实现心跳保活的第二最大周期;所述终端确定发送所述第一用户识别卡用于富媒体通信rcs业务的第一心跳报文和所述第二识别用户卡用于rcs业务的第二心跳报文的第一共用周期,所述第一共用周期为所述第一最大周期和所述第二最大周期中较小的一个;和所述终端按照所述第一共用周期发送所述第一心跳报文和所述第二心跳报文。所述终端按照所述第一共用周期发送所述第一心跳报文和所述第二心跳报文包括:所述终端在所述第一共用周期的开始时刻发送所述第一心跳报文;响应于所述第一心跳报文的第一确认报文,所述终端发送所述第二心跳报文;和响应于所述第二心跳报文的第二确认报文,所述终端进入空闲态。
6.在一些实施例中,所述终端按照所述第一共用周期发送所述第一心跳报文和所述第二心跳报文还包括:响应于在第一预定时间内未收到所述第一心跳报文的第一确认报文,所述终端发送所述第二心跳报文;响应于在第二预定时间内未收到所述第二心跳报文的第二确认报文,所述终端进入空闲态。
7.在一些实施例中,所述方法还包括:响应于未收到所述第一确认报文的次数和未收到所述第一确认报文的次数之和大于第一预设次数,所述终端按照第二共用周期发送所述第一心跳报文和所述第二心跳报文,以使得所述次数之和不大于所述第一预设次数,所述第二共用周期小于所述第一共用周期。
8.在一些实施例中,所述方法还包括:在所述终端按照所述第二共用周期发送所述第一心跳报文和所述第二心跳报文的情况下,响应于在预设持续时间段内均收到所述第一确认报文和所述第二确认报文,所述终端重新按照所述第一共用周期发送所述第一心跳报文和所述第二心跳报文。
9.在一些实施例中,终端确定第一用户识别卡实现心跳保活的第一最大周期和第二识别用户卡实现心跳保活的第二最大周期包括:所述终端按照第一初始周期发送所述第一
心跳报文;响应于按照所述第一初始周期发送所述第一心跳报文的第一确认报文,所述终端按照第二初始周期发送所述第一心跳报文,所述第二初始周期大于所述第一初始周期,其中,响应于前一次发送所述第一心跳报文的第一确认报文,执行后一次发送所述第一心跳报文,并且后一次发送所述第一心跳报文的第二初始周期大于前一次发送所述第一心跳报文的第二初始周期;如果某次按照当前的第二初始周期发送所述第一心跳报文后,未收到第一确认报文,则所述终端仍按照当前的第二初始周期发送所述第一心跳报文;如果连续未收到按照所述当前的第二初始周期发送所述第一心跳报文的第一确认报文的次数大于第二预设次数,则所述终端按照第三初始周期发送所述第一心跳报文,所述第三初始周期小于所述当前的第二初始周期;响应于按照所述第三初始周期发送所述第一心跳报文的第一确认报文,所述终端将所述第三初始周期确定为所述第一最大周期。
10.在一些实施例中,终端确定第一用户识别卡实现心跳保活的第一最大周期和第二识别用户卡实现心跳保活的第二最大周期还包括:所述终端按照所述第一初始周期发送所述第二心跳报文;响应于按照所述第一初始周期发送所述第二心跳报文的第二确认报文,所述终端按照第四初始周期发送所述第二心跳报文,所述第四初始周期大于所述第一初始周期,其中,响应于前一次发送所述第二心跳报文的第二确认报文,执行后一次发送所述第二心跳报文,并且后一次发送所述第二心跳报文的第四初始周期大于前一次发送所述第二心跳报文的第四初始周期;如果某次按照当前的第四初始周期发送所述第二心跳报文后,未收到第二确认报文,则所述终端仍按照当前的第四初始周期发送所述第二心跳报文;如果连续未收到按照当前的第四初始周期发送所述第二心跳报文所述第二确认报文的次数大于第三预设次数,则所述终端按照第五初始周期发送所述第二心跳报文,所述第五初始周期小于所述当前的第四初始周期;响应于按照所述第五初始周期发送所述第二心跳报文的第二确认报文,所述终端将所述第五初始周期确定为所述第二最大周期。
11.在一些实施例中,响应于前一次发送所述第一心跳报文的第一确认报文而执行的后一次发送所述第一心跳报文的第二初始周期与前一次发送所述第一心跳报文的第二初始周期之间的差值均为第一差值;响应于前一次发送所述第二心跳报文的第二确认报文而执行的后一次发送所述第二心跳报文的第四初始周期与前一次发送所述第二心跳报文的第四初始周期之间的差值均为第二差值。
12.在一些实施例中,所述第二差值等于所述第一差值。
13.在一些实施例中,所述第一初始周期为在正常网络环境下实现心跳保活的最小周期。
14.根据本公开实施例的另一方面,提供一种终端,包括:第一确定模块,被配置为确定第一用户识别卡实现心跳保活的第一最大周期和第二识别用户卡实现心跳保活的第二最大周期;第二确定模块,被配置为确定发送所述第一用户识别卡用于富媒体通信rcs业务的第一心跳报文和所述第二识别用户卡用于rcs业务的第二心跳报文的第一共用周期,所述第一共用周期为所述第一最大周期和所述第二最大周期中较小的一个;和处理模块,被配置为按照所述第一共用周期发送所述第一心跳报文和所述第二心跳报文,包括:在所述第一共用周期的开始时刻发送所述第一心跳报文;响应于所述第一心跳报文的第一确认报文,发送所述第二心跳报文;和响应于所述第二心跳报文的第二确认报文,使所述终端进入空闲态。
15.根据本公开实施例的又一方面,提供一种终端,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行上述任意一个实施例所述的方法。
16.根据本公开实施例的又一方面,提供一种报文处理系统,包括:上述任意一个实施例所述的终端;和服务器,被配置为响应于所述第一心跳报文,向所述终端发送所述第一确认报文;响应于所述第二心跳报文,向所述终端发送所述第二确认报文。
17.根据本公开实施例的还一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任意一个实施例所述的方法。
18.本公开实施例中,利用共用周期协同发送第一用户识别卡和第二用户识别卡的心跳报文,即,在共用周期内发送两个用户识别卡的心跳报文,之后再进入空闲态,减小了终端被唤醒的次数,降低了终端的功耗。
19.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
20.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是根据本公开一些实施例的报文处理方法的流程示意图;
22.图2是根据本公开一些实现方式的确定第一最大周期的流程示意图;
23.图3是根据本公开一些实现方式的确定第二最大周期的流程示意图;
24.图4是根据本公开一些实施例的终端的结构示意图;
25.图5是根据本公开另一些实施例的终端的结构示意图;
26.图6是根据本公开一些实施例的报文处理系统的结构示意图。
具体实施方式
27.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
28.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
29.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
30.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
31.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
32.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
33.图1是根据本公开一些实施例的报文处理方法的流程示意图。
34.在步骤102,终端确定第一用户识别卡实现心跳保活的第一最大周期和第二识别用户卡实现心跳保活的第二最大周期。
35.在一些实施例中,第一最大周期和第二最大周期可以通过后文介绍的方式来确定。
36.在步骤104,终端确定发送第一用户识别卡用于rcs业务的第一心跳报文和第二识别用户卡用于rcs业务的第二心跳报文的第一共用周期。这里,第一共用周期为第一最大周期和第二最大周期中较小的一个。
37.例如,第一共用周期tc可以表示为tc=min(ta,tb),ta为第一最大周期,tb为第二最大周期。
38.例如,终端与服务器先建立tcp连接,进而发送心跳报文。
39.在步骤106,终端按照第一共用周期发送第一心跳报文和第二心跳报文。
40.步骤106可以包括步骤116-步骤136。
41.在步骤116,终端在第一共用周期的开始时刻发送第一用户识别卡的第一心跳报文。
42.例如,第一心跳报文的头部可以携带标识,以被识别为是第一用户识别卡的心跳报文。
43.在步骤126,响应于第一心跳报文的第一确认报文,终端发送第二识别用户卡的第二心跳报文。
44.例如,第一确认报文可以是确认(ack)消息。例如,第二心跳报文的头部可以携带标识,以被识别为是第二用户识别卡的心跳报文。
45.在步骤136,响应于第二心跳报文的第二确认报文,终端进入空闲态。
46.例如,第二确认报文可以是ack消息。
47.上述实施例中,利用共用周期协同发送第一用户识别卡和第二用户识别卡的心跳报文,即,在共用周期内发送两个用户识别卡的心跳报文,之后再进入空闲态,减小了终端被唤醒的次数,降低了终端的功耗。
48.应理解,终端每次进行空闲态后,后续会继续按照第一共用周期发送第一心跳报文和第二心跳报文,进而再次进入空闲态。
49.在一些实施例中,在步骤126中,响应于在第一预定时间内未收到第一心跳报文的第一确认报文,终端发送第二用户识别卡的第二心跳报文;在步骤136中,响应于在第二预定时间内未收到第二心跳报文的第二确认报文,终端进入空闲态。换言之,触发终端发送第二识别用户卡的第二心跳报文的条件既可以是收到第一确认报文,也可以是到达第一预定时间仍未收到第一确认报文,两个条件中只要有一个满足即可;触发终端进入空闲态的条件既可以是收到第二确认报文,也可以是到达第二预定时间仍未收到第二确认报文,两个条件中只要有一个满足即可。
50.上述实施例中,一方面,第一心跳报文未发送成功不会影响第二心跳报文的发送;另一方面,终端可以在第二心跳未发送成功的情况下,可以及时进入空穴态。这样的方式下,可以进一步降低终端的功耗。
51.在一些实施例中,响应于未收到第一确认报文的次数和未收到第一确认报文的次数之和大于第一预设次数,终端按照第二共用周期发送第一心跳报文和第二心跳报文,以使得未收到第一确认报文的次数和未收到第一确认报文的次数之和不大于第一预设次数。这里,第二共用周期小于第一共用周期。
52.例如,终端可以按照预设时间间隔逐步减小第二共用周期,直到未收到第一确认报文的次数和未收到第一确认报文的次数之和不大于第一预设次数。
53.应理解,终端按照第二共用周期发送第一心跳报文和第二心跳报文的方式与按照第一共用周期类似,即,可以按照步骤116-步骤136的方式进行,只是将第一共用周期替代为第二共用周期,在此不再赘述。
54.上述实施例中,终端可以自适应调整发送心跳报文的共用周期。并且,通过判断未收到第一确认报文的次数和未收到第一确认报文的次数之和来确定是否减小共用周期更为准确,避免由于某个确认报文的次数异常导致共用周期减小,从而可以尽可能少地发送心跳报文,更有利于降低终端的功耗。
55.在一些实施例中,在终端按照第二共用周期发送第一心跳报文和第二心跳报文的情况下,响应于在预设持续时间段内均收到第一确认报文和第二确认报文,终端重新按照第一共用周期发送第一心跳报文和第二心跳报文。这样的方式下,可以进一步减少发送心跳报文的次数,更有利于降低终端的功耗。
56.下面结合图2介绍第一最大周期的确定方式。
57.在步骤202,终端按照第一初始周期发送第一心跳报文。
58.例如,终端在开机时可以设置第一初始周期,即发送第一心跳报文和第二心跳报文的初始周期。例如,第一初始周期为在正常网络环境下实现心跳保活的最小周期。
59.例如,第一初始周期的持续时间为t,则每隔时间t,终端发送一次第一心跳报文。换言之,终端在每个第一初始周期的开始时刻发送第一心跳报文。
60.在步骤204,响应于按照第一初始周期发送第一心跳报文的第一确认报文,终端按照第二初始周期发送第一心跳报文。这里,第二初始周期大于第一初始周期。
61.在步骤204中,终端可以多次按照第二初始周期发送第一心跳报文。响应于前一次发送第一心跳报文的第一确认报文,执行后一次发送第一心跳报文的步骤,并且,后一次发送第一心跳报文的第二初始周期大于前一次发送第一心跳报文的第二初始周期。
62.例如,可以按照预设时间间隔逐步增加第二初始周期,在某次利用第二初始周期发送第一心跳报文,并且收到了该第一心跳报文的第一确认报文后,下一次利用更大的第二初始周期来发送。
63.终端每次按照第二初始周期发送第一心跳报文后,可以按照后续步骤206-步骤214来执行。
64.在步骤206,终端判断某次按照当前的第二初始周期发送第一心跳报文后,是否收到第一确认报文。如果否,则执行步骤208;如果是,则如上所述,后一次利用更大的第二初始周期来发送第一心跳报文。
65.在步骤208,终端按照当前的第二初始周期发送第一心跳报文。
66.即,终端不改变第二初始周期的持续时间。例如,终端重新与服务器建立tcp连接,并按照当前的第二初始周期发送第一心跳报文。
67.在步骤210,终端判断连续未收到按照当前的第二初始周期发送第一心跳报文的第一确认报文的次数是否大于第二预设次数。如果是,则执行步骤212;如果否,则返回步骤208。
68.在步骤212,终端按照第三初始周期发送第一心跳报文。这里,第三初始周期小于前一次发送第一心跳报文的第二初始周期,即,上述当前的第二初始周期。
69.随着第二初始周期的逐渐增大,可能会无法收到第一确认报文。在未收到第一确认报文的情况下,不再增大第二初始周期,而是继续按照当前的第二初始周期发送第一心跳报文。如果按照当前的第二初始周期发送第一心跳报文未收到相应第一确认报文的连续的次数大于第二预设次数的情况下,可以认为并非由于网络问题导致不能收到第一确认报文,而是由于当前发送第一心跳报文的第二初始周期过大。故,可以减小发送周期。
70.在步骤214,响应于按照第三初始周期发送第一心跳报文的第一确认报文,终端将第三初始周期确定为第一最大周期。
71.例如,可以按照预设时间间隔逐渐减小第三初始周期,直到能够收到按照当前的第三初始周期发送第一心跳报文的第一确认报文,从而可以将当前的第三初始周期作为第一最大周期。
72.类似的,可以按照图3所示方式确定第二最大周期。
73.在步骤302,终端按照第一初始周期发送第二心跳报文;
74.在步骤304,响应于按照第一初始周期发送第二心跳报文的第二确认报文,终端按照第四初始周期发送第二心跳报文。这里,第四初始周期大于第一初始周期。
75.终端响应于前一次发送第二心跳报文的第二确认报文,执行后一次发送第二心跳报文,并且后一次发送第二心跳报文的第四初始周期大于前一次发送第二心跳报文的第四初始周期。
76.终端每次按照第四初始周期发送第一心跳报文后,可以按照后续步骤306-步骤314来执行。
77.在步骤306,终端判断某次按照当前的第四初始周期发送第二心跳报文后,是否收到第二确认报文。如果否,则执行步骤308;如果是,则如上所述,后一次利用更大的第四初始周期来发送第二心跳报文。
78.在步骤308,终端按照当前的第四初始周期发送第二心跳报文。
79.在步骤310,终端判断连续未收到按照当前的第四初始周期发送第二心跳报文第二确认报文的次数大于第三预设次数。如果是,则执行步骤312;如果否,则返回步骤308。
80.在步骤312,终端按照第五初始周期发送第二心跳报文,第五初始周期小于当前的第四初始周期。
81.在步骤314,响应于按照第五初始周期发送第二心跳报文的第二确认报文,将第五初始周期作为第二最大周期。
82.以上分别结合图2和图3介绍了第一最大周期和第二最大周期的确定方式。应理解,在某些实施例中,可以采用除图2和图3之外的其他方式来确定第一最大周期和第二最大周期。
83.在一些实施例中,响应于前一次发送第一心跳报文的第一确认报文而执行的后一次发送第一心跳报文的第二初始周期与前一次发送第一心跳报文的第二初始周期之间的
差值均为第一差值。响应于前一次发送第二心跳报文的第二确认报文而执行的后一次发送第二心跳报文的第四初始周期与前一次发送第二心跳报文的第四初始周期之间的差值均为第二差值。
84.这样的方式下,第二初始周期逐步增加的时间间隔是一样的,并且,第四初始周期逐步增加的时间间隔也是一样的。如此,使得最终确定的第一最大周期和第二最大周期在满足心跳保活的情况下尽可能大,即,更为准确。
85.发明人注意到,在时间间隔不同的情况下,本来第一最大周期可以比第二最大周期更大,但最终确定的结果可能与实际相反。
86.据此,发明人提出,在一些实施例中,上述第二差值等于上述第一差值,如此,最终确定的第一最大周期和第二最大周期按照相同的标准进行,使得二者的相对关系更为准确。
87.图4是根据本公开一些实施例的终端的结构示意图。
88.如图4所示,终端包括第一确定模块401、第二确定模块402和处理模块403。
89.第一确定模块401被配置为确定第一用户识别卡实现心跳保活的第一最大周期和第二识别用户卡实现心跳保活的第二最大周期。第二确定模块402被配置为确定发送第一用户识别卡用于rcs业务的第一心跳报文和第二识别用户卡用于rcs业务的第二心跳报文的第一共用周期,第一共用周期为第一最大周期和第二最大周期中较小的一个。处理模块403被配置为按照第一共用周期发送第一心跳报文和第二心跳报文。具体地,处理模块403被配置为在第一共用周期的开始时刻发送第一心跳报文;响应于第一心跳报文的第一确认报文,发送第二心跳报文;和响应于第二心跳报文的第二确认报文,使终端进入空闲态。
90.图5是根据本公开另一些实施例的终端的结构示意图。
91.如图5所示,终端500包括存储器501以及耦接至该存储器501的处理器502,处理器502被配置为基于存储在存储器501中的指令,执行前述任意一个实施例的方法。
92.存储器501例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如可以存储有操作系统、应用程序、引导装载程序(boot loader)以及其他程序等。
93.终端500还可以包括输入输出接口503、网络接口504、存储接口505等。这些接口503、504、505之间、以及存储器501与处理器502之间例如可以通过总线506连接。输入输出接口503为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口504为各种联网设备提供连接接口。存储接口505为sd卡、u盘等外置存储设备提供连接接口。
94.图6是根据本公开一些实施例的报文处理系统的结构示意图。
95.如图6所示,报文处理系统包括上述任意一个实施例的终端601和服务器602。服务器602被配置为响应于第一心跳报文,向终端601发送第一确认报文;响应于第二心跳报文,向终端601发送第二确认报文。
96.本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于终端实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
97.本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任意一个实施例的方法。
98.至此,已经详细描述了本公开的各实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
99.本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
100.本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解,可由计算机程序指令实现流程图中一个流程或多个流程和/或方框图中一个方框或多个方框中指定的功能。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
101.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
102.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
103.虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献