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

一种终端控制方法及装置与流程

2022-03-05 00:22:16 来源:中国专利 TAG:


1.本技术涉及网络通信技术领域,特别涉及一种终端控制方法及装置。


背景技术:

2.控制中心系统是一种通过tcp/ip协议为一体机、个人电脑、服务器等终端设备建立网络长连接,自定义一套统一消息格式,通过监听服务器发送过来的控制命令,实现对终端设备进行控制的解决方案。
3.但是,随着互联网的发展对终端联网设备的远程控制技术越来越重视,目前市面上的控制方案多是通过http上报或者简单的tcp网络进行连接,控制方式以api的形式提供出来,当纳管的终端数量庞大时,终端链接和数据上报会存在丢失数据或不稳定的情况,响应也不及时,没有分布式扩展的设计导致后期连接数受限,扩展困难,进而导致控制设备响应慢效率低,用户体验非常不好。


技术实现要素:

4.本技术提供了一种终端控制方法及装置。
5.第一方面,本技术提供了一种终端控制方法,应用于控制服务器,所述控制服务器以分布式集群的方式运维,所述分布式集群中各控制服务器以服务发现的方式注册至注册中心,所述注册中心用于监控所述分布式集群中控制服务器的运行状态,所述方法包括:
6.接收客户端发送的控制消息,其中,所述控制消息携带的目的地址为目标设备的地址;
7.将所述控制消息记录至数据库中,并标记所述控制消息的状态为待发送;
8.将所述控制消息发送至消息队列,并通过所述消息队列将所述控制消息发送给目标设备,以使得所述目标设备在接收到所述控制消息后,执行所述控制消息携带的控制指令。
9.可选地,所述方法还包括:
10.若接收到所述目标设备发送的所述控制指令执行完成的响应,则将所述控制消息的状态标记为已发送;
11.若指定时长内未接收到所述目标设备发送的所述控制指令执行完成的响应,则将所述控制消息的状态标记为发送失败,并基于预设的重发策略向所述目标设备发送的所述控制消息;
12.若执行所述重发策略后,仍未收到所述目标设备发送的所述控制指令执行完成的响应,则将所述控制消息标记为离线消息。
13.可选地,所述方法还包括:
14.若检测到所述目标设备上线时,判断数据库中是否存在所述目标设备对应的离线消息;
15.若判定数据库中存在所述目标设备对应的离线消息,则将所述目标设备对应的离
线消息发送至所述目标设备。
16.可选地,接收客户端发送的控制消息之前,所述方法还包括:
17.接收所述目标设备发送的连接建立请求消息,其中,所述连接建立请求消息携带有用户名和密码信息;
18.对所述连接建立请求消息携带的用户名和密码信息进行验证,若验证通过,则向所述目标终端发送验证通过的校验响应,其中,所述目标终端在接收到所述校验响应后,与所述控制服务器器建立通信链路。
19.可选地,所述方法还包括;
20.接收所述目标设备发送的心跳检测消息,其中,若所述目标设备的网络在预设时长内未执行读写操作,则基于预设周期向所述控制服务器发送心跳检测消息;
21.向所述目标设备发送心跳应答消息,其中,若目标设备在发送心跳检测消息后的指定时长内未接收到所述控制服务器发送的心跳应答消息,则将心跳检测失败次数加1,若连续n次心跳检测失败,则断开与所述控制服务器的通信链路,并执行重连操作。
22.第二方面,本技术提供了一种终端控制装置,应用于控制服务器,所述控制服务器以分布式集群的方式运维,所述分布式集群中各控制服务器以服务发现的方式注册至注册中心,所述注册中心用于监控所述分布式集群中控制服务器的运行状态,所述装置包括:
23.第一接收单元,用于接收客户端发送的控制消息,其中,所述控制消息携带的目的地址为目标设备的地址;
24.记录单元,用于将所述控制消息记录至数据库中,并标记所述控制消息的状态为待发送;
25.发送单元,用于将所述控制消息发送至消息队列,并通过所述消息队列将所述控制消息发送给目标设备,以使得所述目标设备在接收到所述控制消息后,执行所述控制消息携带的控制指令。
26.可选地,所述装置还包括第二接收单元:
27.若所述第二接收单元接收到所述目标设备发送的所述控制指令执行完成的响应,则所述记录单元还用于,将所述控制消息的状态标记为已发送;
28.若所述第二接收单元指定时长内未接收到所述目标设备发送的所述控制指令执行完成的响应,则所述记录单元还用于,将所述控制消息的状态标记为发送失败,所述发送单元还用于,基于预设的重发策略向所述目标设备发送的所述控制消息;
29.若所述发送单元执行所述重发策略后,所述第二接收单元仍未收到所述目标设备发送的所述控制指令执行完成的响应,则所述记录单元还用于,将所述控制消息标记为离线消息。
30.可选地,所述装置还包括判断单元:
31.若检测到所述目标设备上线时,所述判断单元用于,判断数据库中是否存在所述目标设备对应的离线消息;
32.若所述判断单元判定数据库中存在所述目标设备对应的离线消息,则所述发送单元将所述目标设备对应的离线消息发送至所述目标设备。
33.可选地,接收客户端发送的控制消息之前,所述装置还包括验证单元:
34.所述第一接收单元还用于,接收所述目标设备发送的连接建立请求消息,其中,所
述连接建立请求消息携带有用户名和密码信息;
35.所述验证单元用于,对所述连接建立请求消息携带的用户名和密码信息进行验证,若验证通过,则所述发送单元用于,向所述目标终端发送验证通过的校验响应,其中,所述目标终端在接收到所述校验响应后,与所述控制服务器器建立通信链路。
36.可选地,所述装置还包括第三接收单元;
37.所述第三接收单元,用于接收所述目标设备发送的心跳检测消息,其中,若所述目标设备的网络在预设时长内未执行读写操作,则基于预设周期向所述控制服务器发送心跳检测消息;
38.所述发送单元还用于,向所述目标设备发送心跳应答消息,其中,若目标设备在发送心跳检测消息后的指定时长内未接收到所述控制服务器发送的心跳应答消息,则将心跳检测失败次数加1,若连续n次心跳检测失败,则断开与所述控制服务器的通信链路,并执行重连操作。
39.第三方面,本技术提供了一种控制服务器,该控制服务器包括:
40.存储器,用于存储程序指令;
41.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
42.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
43.综上可知,本技术实施例提供的终端控制方法,应用于控制服务器,所述控制服务器以分布式集群的方式运维,所述分布式集群中各控制服务器以服务发现的方式注册至注册中心,所述注册中心用于监控所述分布式集群中控制服务器的运行状态,所述方法包括:接收客户端发送的控制消息,其中,所述控制消息携带的目的地址为目标设备的地址;将所述控制消息记录至数据库中,并标记所述控制消息的状态为待发送;将所述控制消息发送至消息队列,并通过所述消息队列将所述控制消息发送给目标设备,以使得所述目标设备在接收到所述控制消息后,执行所述控制消息携带的控制指令。
附图说明
44.为了更加清楚地说明本技术实施例或者现有技术中的技术方案,下面将对本技术实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本技术实施例的这些附图获得其他的附图。
45.图1为本技术实施例提供的一种终端控制方法的详细流程图;
46.图2为本技术实施例提供的控制中心系统的结构示意图;
47.图3为本技术实施例提供的一种终端控制装置的结构示意图;
48.图4为本技术实施例提供的一种控制服务器的结构示意图。
具体实施方式
49.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申
请。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
50.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
51.示例性的,参阅图1所示,为本技术实施例提供的一种终端控制方法的详细流程图,该方法应用于控制服务器,所述控制服务器以分布式集群的方式运维,所述分布式集群中各控制服务器以服务发现的方式注册至注册中心,所述注册中心用于监控所述分布式集群中控制服务器的运行状态,该方法包括以下步骤:
52.步骤100:接收客户端发送的控制消息,其中,所述控制消息携带的目的地址为目标设备的地址。
53.示例性的,参阅图2所示,为本技术实施例提供的一种控制中心系统的结构示意图;该控制中心包括由多个控制中心(控制服务器)组成的分布式集群(控制服务器集群),客户端(用于登陆控制中心的终端设备,用户/管理员通过操作客户端的方式来控制控制服务器对被控终端进行控制)和多个终端设备(被控制的数字化终端)组成,本技术实施例中,基于控制中心系统的控制服务器集群中开发有服务发现功能(基于redis的服务注册与发现框架开发的注册中心),注册中心可用于监控控制服务器的终端连接数,可用于监控分布式集群中各控制服务器的运行状态,当监测到控制服务器连接压力大于设定阈值后,自动提醒管理员对控制服务器集群硬件资源进行横向扩展。
54.例如,检测到控制服务器负载高,终端连接数大,此时可以通知用户进行控制服务器扩容(如,增加至少1台控制服务器),新增的控制服务器可以通过服务发现功能,注册至注册中心,继续由注册中心监控该新增控制服务器的运行状态。
55.本技术实施例中,客户端通过网关与控制服务器集群通信,即控制中心系统可以包括多个客户端,且多个客户端分布式部署在一个/多个不同区域,进一步地,本技术实施例中,控制服务器集群也可以分布式部署在一个/多个不同区域。
56.进一步地,本技术实施例中,控制中心系统的长连接服务模块的实现方法,包括以下步骤:
57.长连接服务模块基于netty的高性能事件驱动,异步非阻塞的io开源框架,建立tcp等底层的链接,快速开发高性能、高可靠的网络服务器和客户端程序。它支持http,websocket,tcp,udp等协议。同时netty又是基于nio的客户端,服务器端编程框架,使用netty可以确保快速和简单的开发出一个网络应用。同时netty提供了非常可靠的稳定性和良好的伸缩性。
58.即本技术实施例中,控制服务器与被控的数字化终端之间的长连接链路是基于netty的高性能事件驱动,异步非阻塞的io开源框架建立的。
59.控制中心系统可以对外提供接口(api接口),通过接口发送控制指令数据,在客户端通过api调用即可实现对终端设备的控制。
60.进一步地,本技术实施例中,还定义了用于该控制中心系统的消息类型和消息格式。具体地,消息类型和格式的实现、定义方式可以包括但不限于以下内容:
61.a、定义全局消息id,保证消息指令的有序和唯一;
62.b、定义消息类型,授权(auth)、ping、pong、text、biz等;
63.c、定义群组id,这样可以给同分组下的所有设备统一下发指令;
64.d、定义消息发送方和接收方id;
65.e、定义消息载体,以便不同业务扩展;
66.f、定义消息体发送状态,待发送、已发送、发送失败等;
67.g、定义消息指令发送失败后重试次数,防止指令丢失。
68.那么,本技术实施例中,在执行步骤100时,用户通过客户端登陆控制服务器,并在客户端上展示控制服务操作界面,用户根据业务需求,通过操作界面向控制服务器发送控制消息,其中,所述控制消息至少携带有当前需控制的目标设备的设备地址(目的地址)。那么,控制服务器就接收到客户端发送的控制消息。
69.本技术实施例中,在接收客户端发送的控制消息之前,上述终端控制方法还可以包括以下步骤:
70.接收所述目标设备发送的连接建立请求消息,其中,所述连接建立请求消息携带有用户名和密码信息;对所述连接建立请求消息携带的用户名和密码信息进行验证,若验证通过,则向所述目标终端发送验证通过的校验响应,其中,所述目标终端在接收到所述校验响应后,与所述控制服务器器建立通信链路。
71.也就是说,控制服务器在控制一个终端设备之前,需要将该终端设备接入控制中心系统,终端设备在于控制服务器首次建立连接时,会发送一次auth类型的授权消息(用户名 盐值密码),服务器收到后作出校验响应,只有收到服务器的auth_ack响应客户端才能做出连接,否则断开当前链接,释放链路。
72.进一步地,本技术实施例中,上述终端控制方法还可以包括以下步骤:
73.接收所述目标设备发送的心跳检测消息,其中,若所述目标设备的网络在预设时长内未执行读写操作,则基于预设周期向所述控制服务器发送心跳检测消息;向所述目标设备发送心跳应答消息,其中,若目标设备在发送心跳检测消息后的指定时长内未接收到所述控制服务器发送的心跳应答消息,则将心跳检测失败次数加1,若连续n次心跳检测失败,则断开与所述控制服务器的通信链路,并执行重连操作。
74.也就是说,为了监控控制服务器与已接入终端设备之间的链路连接状态,本技术实施例中,针对各链路配置有心跳检测机制。
75.例如,通过自定义的含ping、pong等类型的消息体,终端设备网络空闲5秒没有进行写操作时发送一次ping心跳给控制服务器;终端设备如果在下一个发送ping心跳周期来临时,还没有收到控制服务器发送的pong的心跳应答,则失败心跳计数器加1;每当终端设备收到控制服务器的pong心跳应答后,失败心跳计数器清零;如果连续超过3次没有收到控制服务器的心跳回复,则断开当前连接,在5秒后进行重连操作,直到重连成功,否则每隔5秒又会进行重连。
76.步骤110:将所述控制消息记录至数据库中,并标记所述控制消息的状态为待发送。
77.本技术实施例中,将接收到的各控制消息记录至数据库中,并实时更新各控制消息的当前状态,包括,待发送,完成发送,发送失败,多次发送失败后,还可以将其标记为离线消息。
78.步骤120:将所述控制消息发送至消息队列,并通过所述消息队列将所述控制消息发送给目标设备,以使得所述目标设备在接收到所述控制消息后,执行所述控制消息携带的控制指令。
79.进一步地,若接收到所述目标设备发送的所述控制指令执行完成的响应,则将所述控制消息的状态标记为已发送。
80.例如,控制服务器接收到客户端发送的控制消息后,首先,将该控制消息记录到数据库,并将该控制消息的当前状态标记为未发送;然后,将该控制消息发给消息队列,让消息队列负责分发该控制消息到接收方的终端设备,终端设备收到消息后,控制服务器在数据库中将该控制消息的当前状态更新消息状态为发送成功。
81.更进一步的,若指定时长内未接收到所述目标设备发送的所述控制指令执行完成的响应,则将所述控制消息的状态标记为发送失败,并基于预设的重发策略向所述目标设备发送的所述控制消息。
82.若执行所述重发策略后,仍未收到所述目标设备发送的所述控制指令执行完成的响应,则将所述控制消息标记为离线消息。
83.例如,若该控制消息发送失败,则每隔5秒再发送一次,若连续发送3次均发送失败,则可以将该控制消息标记为离线消息。
84.更进一步的,若检测到所述目标设备上线时,判断数据库中是否存在所述目标设备对应的离线消息;若判定数据库中存在所述目标设备对应的离线消息,则将所述目标设备对应的离线消息发送至所述目标设备。
85.若上述控制消息连续发送3次均发送失败,此时可能是链路拥塞或链路故障导致的,此时目标设备可以看作为离线状态,那么,若监测到目标数设备再次上线,此时,可以遍历数据库中是否存在该目标设备对应的离线消息(即历史发送失败的控制消息),若存在,则再次向目标设备发送该离线消息。
86.基于与上述方法实施例同样的发明构思,示例性的,参阅图3所示,为本技术实施例提供的一种终端控制装置的结构示意图,该装置应用于控制服务器,所述控制服务器以分布式集群的方式运维,所述分布式集群中各控制服务器以服务发现的方式注册至注册中心,所述注册中心用于监控所述分布式集群中控制服务器的运行状态,该装置包括:
87.第一接收单元30,用于接收客户端发送的控制消息,其中,所述控制消息携带的目的地址为目标设备的地址;
88.记录单元31,用于将所述控制消息记录至数据库中,并标记所述控制消息的状态为待发送;
89.发送单元32,用于将所述控制消息发送至消息队列,并通过所述消息队列将所述控制消息发送给目标设备,以使得所述目标设备在接收到所述控制消息后,执行所述控制消息携带的控制指令。
90.可选地,所述装置还包括第二接收单元:
91.若所述第二接收单元接收到所述目标设备发送的所述控制指令执行完成的响应,
则所述记录单元31还用于,将所述控制消息的状态标记为已发送;
92.若所述第二接收单元指定时长内未接收到所述目标设备发送的所述控制指令执行完成的响应,则所述记录单元31还用于,将所述控制消息的状态标记为发送失败,所述发送单元32还用于,基于预设的重发策略向所述目标设备发送的所述控制消息;
93.若所述发送单元32执行所述重发策略后,所述第二接收单元仍未收到所述目标设备发送的所述控制指令执行完成的响应,则所述记录单元31还用于,将所述控制消息标记为离线消息。
94.可选地,所述装置还包括判断单元:
95.若检测到所述目标设备上线时,所述判断单元用于,判断数据库中是否存在所述目标设备对应的离线消息;
96.若所述判断单元判定数据库中存在所述目标设备对应的离线消息,则所述发送单元32将所述目标设备对应的离线消息发送至所述目标设备。
97.可选地,接收客户端发送的控制消息之前,所述装置还包括验证单元:
98.所述第一接收单元30还用于,接收所述目标设备发送的连接建立请求消息,其中,所述连接建立请求消息携带有用户名和密码信息;
99.所述验证单元用于,对所述连接建立请求消息携带的用户名和密码信息进行验证,若验证通过,则所述发送单元32用于,向所述目标终端发送验证通过的校验响应,其中,所述目标终端在接收到所述校验响应后,与所述控制服务器器建立通信链路。
100.可选地,所述装置还包括第三接收单元;
101.所述第三接收单元,用于接收所述目标设备发送的心跳检测消息,其中,若所述目标设备的网络在预设时长内未执行读写操作,则基于预设周期向所述控制服务器发送心跳检测消息;
102.所述发送单元32还用于,向所述目标设备发送心跳应答消息,其中,若目标设备在发送心跳检测消息后的指定时长内未接收到所述控制服务器发送的心跳应答消息,则将心跳检测失败次数加1,若连续n次心跳检测失败,则断开与所述控制服务器的通信链路,并执行重连操作。
103.以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
104.进一步地,本技术实施例提供的控制服务器,从硬件层面而言,所述控制服务器的硬件架构示意图可以参见图4所示,所述控制服务器可以包括:存储器40和处理器41,
105.存储器40用于存储程序指令;处理器41调用存储器40中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
106.可选地,本技术还提供一种控制服务器,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
107.可选地,本技术还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
108.这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
109.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
110.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
111.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
112.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
113.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
114.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
115.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

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

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

相关文献