1.本发明涉及数据交互技术领域,尤其涉及一种远程终端连接方法、装置、设备及存储介质。
背景技术:2.目前在服务器与客户端的交互中数据是用传输控制协议(transmission control protocol,tcp)进行相互传输的,其需要先将tcp进行连接才进行业务数据传输。有时需要服务器主动发送数据给终端但是tcp服务器正常是不能直接连接tcp客户端的,目前有些操作通过服务器和终端进行tcp长连接实现,但是设备数量多,数据处理量较大,对服务器性能影响较大,容易造成服务器死机的情况。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:4.本发明的主要目的在于提供一种远程终端连接方法、装置、设备及存储介质,旨在解决现有技术服务器与多个客户端连接对服务器负荷大影响性能的技术问题。
5.为实现上述目的,本发明提供了一种远程终端方法,所述方法包括以下步骤:
6.根据预存的客户端组信息确定各客户端组中的标识客户端;
7.接收各标识客户端发送的心跳包;
8.根据所述心跳包确定目标标识客户端;
9.从各客户端组中选取出所述目标标识客户端所在的目标客户端组;
10.与所述目标客户端组中的各待连接客户端建立tcp连接。
11.可选地,所述根据预存的客户端组信息确定各客户端组中的标识客户端之前,还包括:
12.获取各待监测客户端的客户端信息;
13.根据所述客户端信息将各待监测客户端进行分组,得到多个客户端组;
14.根据所述客户端信息确定各客户端组对应的客户端组信息。
15.可选地,所述根据所述客户端信息将各待监测客户端进行分组,得到多个客户端组,包括:
16.根据所述客户端信息确定各待监测客户端的用途信息和分布信息;
17.根据所述用途信息和所述分布信息分别得到各待监测客户端的备选用途分组和备选分布分组;
18.获取客户端组的分组规则;
19.根据所述客户端组的分组规则从所述备选用途分组和所述分布备选分组中选取目标备选分组;
20.根据所述目标备选分组将各待监测客户端分为多个客户端组。
21.可选地,所述根据预存的客户端组信息确定各客户端组中的标识客户端,包括:
22.根据所述客户端组信息确定各客户端组中的待监测客户端的客户端信息;
23.根据所述客户端信息确定各待监测客户端的标识信息;
24.根据所述标识信息确定各待监测客户端中的带标识客户端;
25.根据所述带标识客户端确定各客户端组中的标识客户端。
26.可选地,所述与所述目标客户端组中的各待连接客户端建立tcp连接,包括:
27.根据所述目标客户端组确定多个待连接客户端;
28.根据所述心跳包确定各待连接客户端的ip信息;
29.根据所述ip信息与各待连接客户端建立tcp连接。
30.可选地,所述根据所述ip信息与各待连接客户端建立tcp连接,包括:
31.根据所述ip信息确定各待连接客户端的ip地址;
32.根据所述ip地址向各待连接客户端发送连接指令,以使所述待连接客户端反馈连接发起请求;
33.响应所述连接发起请求,与各待连接客户端建立tcp连接。
34.可选地,所述响应所述连接发起请求,与各待连接客户端建立tcp连接,包括:
35.当接收到所述连接发起请求时,根据所述连接发起请求确定各待连接客户端的验证秘钥信息;
36.将所述各待连接客户端的验证秘钥信息与预设验证信息进行对比验证,得到对比验证结果;
37.将所述对比验证结果为验证失败的待连接客户端作为无权限客户端;
38.将所述无权限客户端从多个所述待连接客户端中删除,得到更新后的待连接客户端;
39.向所述更新后的待连接客户端发送业务数据,以与更新后的待连接客户端建立tcp连接。
40.此外,为实现上述目的,本发明还提出一种远程终端装置,所述远程终端装置包括:
41.标识确定模块,用于根据预存的客户端组信息确定各客户端组中的标识客户端;
42.心跳包接收模块,用于接收各标识客户端发送的心跳包;
43.目标确定模块,用于根据所述心跳包确定目标标识客户端;
44.分组选取模块,用于从各客户端组中选取出所述目标标识客户端所在的目标客户端组;
45.远程连接模块,用于与所述目标客户端组中的各待连接客户端建立tcp连接。
46.此外,为实现上述目的,本发明还提出一种远程终端设备,所述远程终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的远程终端程序,所述远程终端程序配置为实现如上文所述的远程终端方法的步骤。
47.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有远程终端程序,所述远程终端程序被处理器执行时实现如上文所述的远程终端方法的步骤。
48.本发明根据预存的客户端组信息确定各客户端组中的标识客户端;接收各标识客户端发送的心跳包;根据所述心跳包确定目标标识客户端;从各客户端组中选取出所述目
标标识客户端所在的目标客户端组;与所述目标客户端组中的各待连接客户端建立tcp连接。通过这种方式,实现了仅接收标识客户端发送的心跳包并确定目标标识客户端,并且只与目标客户端组的待连接客户端建立tcp连接,使得不连接所有客户端,只连接需要调用的客户端组,并且与每一个客户端组的标识客户端进行交互,减少了数据的处理量,降低了服务器的压力。
附图说明
49.图1是本发明实施例方案涉及的硬件运行环境的远程终端设备的结构示意图;
50.图2为本发明远程终端方法第一实施例的流程示意图;
51.图3为本发明远程终端方法第二实施例的流程示意图;
52.图4为本发明远程终端装置第一实施例的结构框图。
53.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
54.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
55.参照图1,图1为本发明实施例方案涉及的硬件运行环境的远程终端设备结构示意图。
56.如图1所示,该远程终端设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
57.本领域技术人员可以理解,图1中示出的结构并不构成对远程终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
58.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及远程终端程序。
59.在图1所示的远程终端设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明远程终端设备中的处理器1001、存储器1005可以设置在远程终端设备中,所述远程终端设备通过处理器1001调用存储器1005中存储的远程终端程序,并执行本发明实施例提供的远程终端方法。
60.本发明实施例提供了一种远程终端方法,参照图2,图2为本发明一种远程终端方法第一实施例的流程示意图。
61.本实施例中,所述远程终端方法包括以下步骤:
62.步骤s10:根据预存的客户端组信息确定各客户端组中的标识客户端。
63.需要说明的是,本实施例的执行主体为服务器,可以为实体服务器,也可以为云服务器,或者其他可以与客户端进行tcp连接的设备,本实施例对此不加以限制。
64.应理解的是,目前对于服务器与多个客户端连接的情况是采用长连接的方式将服务器与多个客户端连接,但是这种方式随着设备数量的增多会对服务器造成较大的负荷,对服务器性能影响较大,严重时会造成服务器死机,进而导致其他的损失。而本实施例的方案仅接收标识客户端发送的心跳包并确定目标标识客户端,并且只与目标客户端组的待连接客户端建立tcp连接,使得不连接所有客户端,只连接需要调用的客户端组,并且与每一个客户端组的标识客户端进行交互,减少了数据的处理量,降低了服务器的压力。
65.在具体实施中,客户端组信息指的是预先将多个待监测客户端分成的多个小组的相关信息,即由若干个待监测客户端组成的客户端组的相关信息。
66.需要说明的是,标识客户端指的是在每一个客户端组中有且仅有一个的作为每个客户端组的标识和代表的客户端,每个客户端组中仅有一个标识客户端向服务器发送心跳包。
67.进一步的,为了确定标识客户端,步骤s10包括:根据所述客户端组信息确定各客户端组中的待监测客户端的客户端信息;根据所述客户端信息确定各待监测客户端的标识信息;根据所述标识信息确定各待监测客户端中的带标识客户端;根据所述带标识客户端确定各客户端组中的标识客户端。
68.应理解的是,根据所述客户端信息确定各待监测客户端的标识信息指的是:根据客户端信息确认各个待监测客户端中的是否带有标识的判定信息,并将判定信息作为标志信息。
69.在具体实施中,根据所述标识信息确定各待监测客户端中的带标识客户端指的是:根据标识信息确定待监测客户端中的所有的带有标识的客户端,作为带标识客户端。此处的标识可以为任意的用于标记客户端的标签信息或者标记信息,本实施例对此不加以限制。
70.需要说明的是,根据所述带标识客户端确定各客户端组中的标识客户端指的是:当确定了带标识客户端之后,确定每个客户端组中是否有且仅有一个带标识客户端。如果一个客户端组中没有带标识客户端,则随机选取一个该客户端组中的客户端作为标识客户端;如果客户端组中有多个带标识客户端,则选取一个为标志客户端。
71.通过这种方式,实现了设定每个客户端组有且仅有一个标志客户端,防止出现系统错误。
72.步骤s20:接收各标识客户端发送的心跳包。
73.应理解的是,心跳包指的是各个标志客户端在周期时间内向服务器发送的数据包,心跳包发送的周期可以为任意的时长,例如:30s、1min等,本实施例对此不加以限制。
74.步骤s30:根据所述心跳包确定目标标识客户端。
75.在具体实施中,当接收到心跳包之后,根据心跳包中的信息选取各个标识客户端的其中一个作为目标标识客户端。
76.需要说明的是,根据心跳包从标识客户端中选取目标标识客户端可以根据用户的需求选择,例如:当某一个标识客户端的心跳包未按照发送的周期进行发送,则将该标识客户端作为目标标识客户端;或者可以根据用户需求需要查询某个客户端组的信息和状态时,则将该客户端组对应的标识客户端作为目标标识客户端。
77.步骤s40:从各客户端组中选取出所述目标标识客户端所在的目标客户端组。
78.应理解的是,当确定了目标标识客户端之后,再根据预先存储的客户端组信息从客户端组中选取目标标识客户端对应的客户端组作为目标客户端组。
79.步骤s50:与所述目标客户端组中的各待连接客户端建立tcp连接。
80.在具体实施中,当确认目标客户端组之后,再确定多个待连接客户端,然后根据待连接客户端的ip信息与各个待连接客户端建立tcp连接。
81.进一步的,为了与待连接客户端进行tcp连接,步骤s50包括:根据所述目标客户端组确定多个待连接客户端;根据所述心跳包确定各待连接客户端的ip信息;根据所述ip信息与各待连接客户端建立tcp连接。
82.需要说明的是,待连接客户端指的是目标客户端组中的所有可以进行tcp连接的客户端,在此处指的是目标客户端组中的所有客户端。
83.应理解的是,当确定待连接客户端之后,再根据心跳包中的信息获取各个待连接客户端的ip地址的相关信息,作为ip信息,最后根据ip信息与待连接客户端建立tcp连接。
84.通过这种方式,实现了根据目标客户端组和心跳包准确的判定所有的待连接客户端以及待连接客户端的ip信息,从而可以与待连接客户端建立tcp连接。
85.进一步的,为了根据ip信息建立tcp连接,根据所述ip信息与各待连接客户端建立tcp连接的步骤包括:根据所述ip信息确定各待连接客户端的ip地址;根据所述ip地址向各待连接客户端发送连接指令,以使所述待连接客户端反馈连接发起请求;响应所述连接发起请求,与各待连接客户端建立tcp连接。
86.在具体实施中,当获取到各个待连接客户端的ip地址之后,再根据ip地址向各个待连接客户端发送连接指令,当待连接客户端接收到连接指令之后会根据连接指令反馈连接发起请求,并把连接发起请求发送到服务器。其中,连接指令与连接发起请求都可以为任意形式以及任意类型的能实现对应功能的指令与请求,本实施例对此不加以限制。
87.需要说明的是,当服务器接收到连接发起请求之后,即可以与连接发起请求对应的待连接客户端建立tcp连接。由于服务器不能与客户端进行主动连接,所以需要客户端发送连接发起请求。
88.通过这种方式,实现了根据待连接客户端的ip地址与各个待连接客户端交互,从而使得待连接客户端发起与服务器的连接请求,从而建立tcp连接,使得tcp连接可以更快速的建立。
89.进一步的,为了在建立tcp连接时可以进行验证,响应所述连接发起请求,与各待连接客户端建立tcp连接的步骤包括:当接收到所述连接发起请求时,根据所述连接发起请求确定各待连接客户端的验证秘钥信息;将所述各待连接客户端的验证秘钥信息与预设验证信息进行对比验证,得到对比验证结果;将所述对比验证结果为验证失败的待连接客户端作为无权限客户端;将所述无权限客户端从多个所述待连接客户端中删除,得到更新后的待连接客户端;向所述更新后的待连接客户端发送业务数据,以与更新后的待连接客户端建立tcp连接。
90.应理解的是,当服务器接收到连接发起请求之后,再向连接发起请求的来源的服务器发送验证密钥信息,验证密钥信息是确定各个待连接客户端是否拥有tcp连接的权限的信息,可以为能实现此功能的任意信息,本实施例对此不加以限制。
91.在具体实施中,预设验证信息指的是在服务器中预存的用于验证客户端的连接权
限的信息。
92.需要说明的是,对比验证结果即为各个待连接客户端反馈的用于验证的验证密钥信息与预设验证信息是否一致,如果一致,则判定待连接客户端的对比验证结果为验证成功,否则为验证失败。
93.应理解的是,将所有验证失败的待连接客户端作为无权限客户端之后,再根据无权限客户端对待连接客户端进行筛选,得到更新后的待连接客户端。此时更新后的待连接客户端不包含无权限客户端。
94.在具体实施中,当得到更新后的待连接客户端之后,再向更新后的待连接客户端发送业务数据,从而建立tcp连接。其中,业务数据指的是用于建立tcp连接需要的所有数据,本实施例对此不加以限制。
95.通过这种方式,实现了从待连接客户端中筛选出拥有权限的客户端再建立连接,防止目标客户端组中存在无权限的客户端导致安全性问题。
96.本实施例通过根据预存的客户端组信息确定各客户端组中的标识客户端;接收各标识客户端发送的心跳包;根据所述心跳包确定目标标识客户端;从各客户端组中选取出所述目标标识客户端所在的目标客户端组;与所述目标客户端组中的各待连接客户端建立tcp连接。通过这种方式,实现了仅接收标识客户端发送的心跳包并确定目标标识客户端,并且只与目标客户端组的待连接客户端建立tcp连接,使得不连接所有客户端,只连接需要调用的客户端组,并且与每一个客户端组的标识客户端进行交互,减少了数据的处理量,降低了服务器的压力。
97.参考图3,图3为本发明一种远程终端方法第二实施例的流程示意图。
98.基于上述第一实施例,本实施例远程终端方法在所述步骤s10之前,还包括:
99.步骤s101:获取各待监测客户端的客户端信息。
100.需要说明的是,客户端信息指的是待监测客户端的客户端地址、编号等相关信息。待监测客户端指的是本实施例的执行主体的服务器对应的所有可以监测的客户端,或者预先设定的需要进行tcp连接或者正在被监测的客户端。
101.步骤s102:根据所述客户端信息将各待监测客户端进行分组,得到多个客户端组。
102.应理解的是,当得到客户端信息之后,根据客户端信息将所有的待监测客户端分为若干个小组,即为客户端组,客户端组可以为任意个数,本实施例对此不加以限制。
103.进一步地,为了可以根据不同的分组依据得到灵活的客户端组,步骤s102包括:根据所述客户端信息确定各待监测客户端的用途信息和分布信息;根据所述用途信息和所述分布信息分别得到各待监测客户端的备选用途分组和备选分布分组;获取客户端组的分组规则;根据所述客户端组的分组规则从所述备选用途分组和所述分布备选分组中选取目标备选分组;根据所述目标备选分组将各待监测客户端分为多个客户端组。
104.在具体实施中,用途信息指的是各个待监测客户端分别的用途和作用的相关信息。分布信息指的是各个待监测客户端对应的地理位置或者分布位置的相关信息。
105.需要说明的是,根据所述用途信息和所述分布信息分别得到各待监测客户端的备选用途分组和备选分布分组指的是:根据用途信息对待监测客户端分组,得到备选用途分组,然后再根据分布信息对待监测客户端进行分组,得到备选分布分组。
106.应理解的是,分组规则可以为用户自行设定并预先存储的规则,可以为用途分组
和分布分组,或者用户自行分组三种规则。
107.在具体实施中,根据所述客户端组的分组规则从所述备选用途分组和所述分布备选分组中选取目标备选分组指的是:当分组规则为用途分组时,将备选用途分组作为目标备选分组,当分组规则为分布分组时,将备选分布分组作为目标备选分组。
108.需要说明的是,当确定了目标备选分组之后,再按照目标备选分组的分组规则即每个分组包含的客户端将所有待监测客户端进行分组,得到了多个客户端组。
109.通过这种方式,使得客户端组的分组更加准确且灵活,适配不同的需求。
110.步骤s103:根据所述客户端信息确定各客户端组对应的客户端组信息。
111.应理解的是,当确定了客户端组之后,将各个客户端组的待监测客户端的客户端信息进行汇总和统计,得到了各个客户端组对应的客户端组信息。
112.本实施例通过获取各待监测客户端的客户端信息;根据所述客户端信息将各待监测客户端进行分组,得到多个客户端组;根据所述客户端信息确定各客户端组对应的客户端组信息。通过这种方式,实现了根据客户端信息对待监测客户端进行分组,并获取客户端信息,使得后续确定标识客户端以及接受心跳包和建立tcp连接的操作可以以分组为依据,不需要连接所有的客户端,减少了服务器的压力。
113.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有远程终端程序,所述远程终端程序被处理器执行时实现如上文所述的远程终端方法的步骤。
114.由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不一一赘述。
115.参照图4,图4为本发明远程终端装置第一实施例的结构框图。
116.如图4所示,本发明实施例提出的远程终端装置包括:
117.标识确定模块10,用于根据预存的客户端组信息确定各客户端组中的标识客户端。
118.心跳包接收模块20,用于接收各标识客户端发送的心跳包。
119.目标确定模块30,用于根据所述心跳包确定目标标识客户端。
120.分组选取模块40,用于从各客户端组中选取出所述目标标识客户端所在的目标客户端组。
121.远程连接模块50,用于与所述目标客户端组中的各待连接客户端建立tcp连接。
122.本实施例通过根据预存的客户端组信息确定各客户端组中的标识客户端;接收各标识客户端发送的心跳包;根据所述心跳包确定目标标识客户端;从各客户端组中选取出所述目标标识客户端所在的目标客户端组;与所述目标客户端组中的各待连接客户端建立tcp连接。通过这种方式,实现了仅接收标识客户端发送的心跳包并确定目标标识客户端,并且只与目标客户端组的待连接客户端建立tcp连接,使得不连接所有客户端,只连接需要调用的客户端组,并且与每一个客户端组的标识客户端进行交互,减少了数据的处理量,降低了服务器的压力。
123.在一实施例中,所述标识确定模块10,还用于获取各待监测客户端的客户端信息;根据所述客户端信息将各待监测客户端进行分组,得到多个客户端组;根据所述客户端信息确定各客户端组对应的客户端组信息。
124.在一实施例中,所述标识确定模块10,还用于根据所述客户端信息确定各待监测
客户端的用途信息和分布信息;根据所述用途信息和所述分布信息分别得到各待监测客户端的备选用途分组和备选分布分组;获取客户端组的分组规则;根据所述客户端组的分组规则从所述备选用途分组和所述分布备选分组中选取目标备选分组;根据所述目标备选分组将各待监测客户端分为多个客户端组。
125.在一实施例中,所述标识确定模块10,还用于根据所述客户端组信息确定各客户端组中的待监测客户端的客户端信息;根据所述客户端信息确定各待监测客户端的标识信息;根据所述标识信息确定各待监测客户端中的带标识客户端;根据所述带标识客户端确定各客户端组中的标识客户端。
126.在一实施例中,所述远程连接模块50,还用于根据所述目标客户端组确定多个待连接客户端;根据所述心跳包确定各待连接客户端的ip信息;根据所述ip信息与各待连接客户端建立tcp连接。
127.在一实施例中,所述远程连接模块50,还用于根据所述ip信息确定各待连接客户端的ip地址;根据所述ip地址向各待连接客户端发送连接指令,以使所述待连接客户端反馈连接发起请求;响应所述连接发起请求,与各待连接客户端建立tcp连接。
128.在一实施例中,所述远程连接模块50,还用于当接收到所述连接发起请求时,根据所述连接发起请求确定各待连接客户端的验证秘钥信息;将所述各待连接客户端的验证秘钥信息与预设验证信息进行对比验证,得到对比验证结果;将所述对比验证结果为验证失败的待连接客户端作为无权限客户端;将所述无权限客户端从多个所述待连接客户端中删除,得到更新后的待连接客户端;向所述更新后的待连接客户端发送业务数据,以与更新后的待连接客户端建立tcp连接。
129.应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
130.需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
131.另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的远程终端方法,此处不再赘述。
132.此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
133.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
134.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方
法。
135.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。