CN117201562A - 基于WebSocket的控制系统、方法、设备和介质 - Google Patents

基于WebSocket的控制系统、方法、设备和介质 Download PDF

Info

Publication number
CN117201562A
CN117201562A CN202311175898.1A CN202311175898A CN117201562A CN 117201562 A CN117201562 A CN 117201562A CN 202311175898 A CN202311175898 A CN 202311175898A CN 117201562 A CN117201562 A CN 117201562A
Authority
CN
China
Prior art keywords
equipment
target
seeding
connection
websocket
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311175898.1A
Other languages
English (en)
Inventor
高鹏宇
陈翔宇
姚冬
梁泽众
王京
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sinochem Information Technology Co Ltd
Original Assignee
Sinochem Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sinochem Information Technology Co Ltd filed Critical Sinochem Information Technology Co Ltd
Priority to CN202311175898.1A priority Critical patent/CN117201562A/zh
Publication of CN117201562A publication Critical patent/CN117201562A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本公开涉及物联网技术领域,提供了一种基于WebSocket的控制系统、方法、设备和介质。该系统包括:若干播种设备、目标服务器和设备控制端;上述若干播种设备和上述目标服务器通过WebSocket进行通信。本公开提供的系统通过key‑value(键值对)形式的Map集合中目标播种设备的目标第一标识和目标第二标识实现控制指令的传输,基于WebSocket协议,提高控制距离和传输稳定性,使得农户在家就可以实时控制履带式设备进行作业,而不必亲自下到田间。

Description

基于WebSocket的控制系统、方法、设备和介质
技术领域
本公开涉及物联网技术领域,尤其涉及基于WebSocket的控制系统、方法、设备和介质。
背景技术
随着科技的进步,人工智能技术被广泛应用到农业领域,履带式设备在农业领域是常见的运输工具,其现有的控制方法是利用JAVA Socket编程,使控制端与被控端之间建立数据传输的数据流通道。在控制端,实现对所有事件(Mouse、Key)的侦听,将所有事件封装在InputEvent类,并用对像输出流ObjectOutp utStream发送到远端。其控制距离有限,传输稳定性、实时性不高,无法做到农户在家中实时控制履带车出库播种入库操作。因此,如何能够提高控制距离和传输稳定性,使得农户在家就可以实时控制履带式设备进行作业成为亟待解决的问题。
发明内容
有鉴于此,本公开实施例提供了一种基于WebSocket的控制系统、方法、设备和介质,以解决现有技术中如何能够提高控制距离和传输稳定性,使得农户在家就可以实时控制履带式设备进行作业成为亟待解决的问题。
本公开实施例的第一方面,提供了一种基于WebSocket的控制系统,包括若干播种设备、目标服务器和设备控制端;上述若干播种设备和上述目标服务器通过WebSocket进行通信;上述目标服务器被配置为:响应于接收到上述设备控制端发送的控制信号;上述控制信号包括控制指令和目标第一设备标识;基于上述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,上述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识;响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备;调用异步消息发送函数将控制指令转发至目标播种设备。
本公开实施例的第二方面,提供了一种基于WebSocket的控制方法,包括:响应于接收到上述设备控制端发送的控制信号;上述控制信号包括控制指令和目标第一设备标识;基于上述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,上述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识;响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备;调用异步消息发送函数将控制指令转发至目标播种设备。
本公开实施例的第三方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并且可以在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
本公开实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本公开实施例与现有技术相比存在的有益效果是:首先,响应于接收到上述设备控制端发送的控制信号;这里,控制信号包括控制指令和目标第一设备标识;其次,基于上述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,上述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识;然后,响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备;最后,调用异步消息发送函数将控制指令转发至目标播种设备。本申请的系统包括若干播种设备、目标服务器和设备控制端;若干播种设备和上述目标服务器通过WebSocket进行通信;We bSocket是基于HTTP请求的通信协议,实现了服务器主动发送数据至履带式设备。只需设备控制端或履带式设备在建立连接时向目标服务器发送一次连接请求,目标服务器响应后即可实现目标服务器与设备控制端或履带式设备的全双工数据交互。即使一段时间无数据通信连接也不会断开,减少了发送信号所需数据包的体积与服务器处理数据的时间。较AJAX轮询大大降低了控制信号传输时延,提高了传输稳定性。本申请通过key-value(键值对)形式的Map集合中目标播种设备的目标第一标识和目标第二标识实现控制指令的传输,基于WebSocket协议,提高控制距离和传输稳定性,使得农户在家就可以实时控制履带式设备进行作业,而不必亲自下到田间。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是根据本公开的基于WebSocket的控制系统的一些实施例的结构示意图;
图2是根据本公开的一些实施例的基于WebSocket的控制方法的一个应用场景的示意图;
图3是根据本公开的基于WebSocket的控制方法的一些实施例的流程图;
图4是适于用来实现本公开的一些实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本公开。
图1是根据本公开的一些实施例的基于WebSocket的控制系统的一些实施例的结构示意图,该系统包括:若干播种设备100、目标服务器110和设备控制端120;上述若干播种设备100和上述目标服务器110通过WebSocket进行通信;这里,WebSocket是基于HTTP请求的通信协议,实现了目标服务器主动发送数据至履带式设备。只需设备控制端或履带式设备在建立连接时向目标服务器发送一次连接请求,目标服务器响应后即可实现目标服务器与设备控制端或履带式设备的全双工数据交互。即使一段时间无数据通信连接也不会断开,减少了发送信号所需数据包的体积与服务器处理数据的时间,较AJAX轮询大大降低了控制信号传输时延。它还具有多路复用的功能,多个不同的播种机网络地址可以使用相同的WebSocket连接。播种设备可以为履带式播种设备。同一设备控制端可以控制多台履带式播种设备。
本申请,设置webSocketConfig类,用于在目标服务器中注册WebSocket功能,使用@ServerEndpoint注解规定WebSocket连接的URL地址为ws://47.98.170.62:8080/websocket/{userId}/{toUserId},其中,userId和toUserId为设备标识,每一个请求需附带userId与toUserId两个参数,以能够确定对应的目标播种设备。还设置remoteWebSocket类,用于处理设备控制端发送的网络请求,解析控制信号以及向指定播种机发送控制信号等,在该类中定义了key-value(键值对)形式的Map集合,用于存储每个WebSocket连接,连接参数的userId作为唯一且非空的key,每个连接的session作为对应的value。
需要说明的是,在控制播种设备进行作之前,需要与播种设备建立连接。
此时,上述目标服务器的执行流程包括以下步骤:
第一步、响应于接收到上述设备控制端的连接请求,与上述设备控制端和上述目标播种设备建立连接;
第二步、响应于连接建立成功,与目标播种设备或设备控制端进行全双工数据交互。
上述目标服务器110的执行流程包括以下步骤:
第一步,响应于接收到上述设备控制端发送的控制信号;上述控制信号包括控制指令和目标第一设备标识。
在一些实施中,目标服务器110接收到设备控制端120发送的控制信号,上述控制信号包括控制指令和目标第一设备标识。其中,目标第一设备标识可以为userId,这里,设置目标第一设备标识是由于同一设备控制端可能同时控制多个播种设备,通过目标第一设备标识唯一性的确定控制指令的发送和待执行对象。
第二步,基于上述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,上述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识。
在一些实施例中,预设设备集合中包含若干设备的第二设备标识,这里,目标第一设备标识和目标第二设备标识是对应的,目标第二设备标识可以为to UserId。根据目标第一设备标识和其对应的目标第二设备标识确定目标设备。
第三步,响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备。
第四步,调用异步消息发送函数将控制指令转发至目标播种设备。
在一些实施例中,确定目标播种设备后,调用异步消息发送函数将控制指令转发至目标播种设备,以使得目标播种设备执行控制指令。这里,异步消息发送函数可以为getAsyncRemote().sendText()函数。
在一些实施例的一些可选的实现方式中,上述目标服务器内设置哈希值查询表,这里,哈希值查询表可以是ConcurrentHashMap集合,是支持高并发更新与查询的哈希表。由于实际使用时将有大量播种设备连接目标服务器,故采用适用于高并发多线程情形下的哈希值查询表,上述哈希值查询表用于存储WebSocket连接数据并对上述Websocket连接数据进行分段加锁。保证了高并发情况下的连接与数据的安全性。此时,目标服务器的执行流程包括以下步骤:第一步、响应于接受到上述设备控制端的连接请求,确定上述哈希值查询表内是否存在上述连接请求对应的第一设备标识;第二步、若存在,则删除哈希值查询表内上述连接请求对应的第一设备标识;第三步、根据上述连接请求,与上述设备控制端和上述目标播种设备建立连接。
在一些实施例的一些可选的实现方式中,在响应于接受到上述设备控制端的连接请求,确定上述哈希值查询表内是否存在上述连接请求对应的第一设备标识之后,上述目标服务器的执行流程还包括以下步骤:第四步、若不存在,则将上述连接请求对应的第一设备标识存储至上述哈希值查询表内;第五步、根据上述连接请求,与上述设备控制端和上述目标播种设备建立连接。这里,存储后,将当前目标服务器已连接数返回设备控制端,便于用户查看。
在一些实施例的一些可选的实现方式中,若上述目标播种设备无法接收数据,由于Websocket协议规定连接只能由目标服务器主动发出,当播种设备发生网络波动或目标服务器负载过高导致无法接收数据时,设备控制端无法联系到目标服务器,故需要设计算法断开连接并快速恢复。此时,基于WebSocket的控制系统的设备控制端120被配置为:第一步、若检测到WebSocket连接状态由连接成功状态转为其他状态时,则向上述目标服务器发送重连请求;第二步、根据退避算法处理上述重连请求,直至重连成功。退避算法即第一次发起新连接时仍失败,间隔10ms再次发出,若仍失败,则间隔20ms后再次发出,依次递增10ms。同时继续监听旧连接的状态,当由其他状态转变为连接成功状态时,立即发出新连接请求并将间隔时间置为10ms不再递增。当旧连接由连接成功状态状态转变为其他状态时,再将间隔时间由10ms进行递增,以在不同网络情况下采用不同重连方式达到连接高可用的效果。
需要说明的是,在发起新连接前断开旧连接可以释放资源、避免重复接收发送旧数据。Websocket协议的底层是TCP连接,而TCP连接断开操作通常是由目标服务器进行的,当目标播种设备想要进行断开连接操作时分为连接可用和连接不可用两种情况。当目标播种设备通过心跳包确认连接可用时,将发送断开信号至目标服务器,目标服务器主动断开连接。当连接不可用时,立即发出建立新连接请求并附带不可用连接的sessionId,目标服务器接收到请求后将该sessionId对应的连接中自新连接请求发出时间之后收到的数据丢弃并将该w ebsocket连接删除,达到确保新连接不受旧连接影响的效果。
另外,Websocket连接的readyState属性有4个值:(1)CONNECTING:值为0,表示正在连接;(2)OPEN:值为1,表示连接成功,可以通信;(3)CLOSING:值为2,表示连接正在关闭;(3)CLOSED:值为3,表示连接已经关闭,或者打开连接失败。上述连接成功状态即为OPEN状态。
在一些实施例的一些可选的实现方式中,若上述目标播种设备无法接收数据,在根据预设时间间隔发送心跳包至目标服务器之后,上述设备控制端被配置为:第一步、若检测到WebSocket连接状态由其他状态转为连接成功状态时,发送心跳包至目标服务器以确定连接是否可用;第二步、若连接不可用,则向上述目标服务器发送重连请求;第三步、根据退避算法处理上述重连请求,直至重连成功。这里,如果采用定时发送心跳包的方式检测连接是否断开、是否可用,则无法做到快速感知,缩小发包间隔时间对资源网络消耗过大,故定时发送心跳包方式可作为检测连接的兜底机制。故而,本申请中在检测到WebSocket连接状态由其他状态转为连接成功状态时,发送心跳包至目标服务器以确定连接是否可用,以达到快速感知的效果。
图2是根据本公开的一些实施例的方法的一个应用场景的示意图。
在图2的应用场景中,首先,计算设备201可以响应于接收到上述设备控制端发送的控制信号;上述控制信号包括控制指令202和目标第一设备标识203。其次,计算设备201可以基于上述目标第一设备标识202,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,上述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识。然后,响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备204。最后,计算设备201可以调用异步消息发送函数将控制指令203转发至目标播种设备204。
需要说明的是,上述计算设备201可以是硬件,也可以是软件。当计算设备201为硬件时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。当计算设备201体现为软件时,可以安装在上述所列举的硬件设备中。作为示例,可以为目标服务器。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图2中的计算设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的计算设备。
图3是根据本公开的基于WebSocket的控制方法的一些实施例的流程图。图3的基于WebSocket的控制方法可以由图2的计算设备201执行。如图3所示,该基于WebSocket的控制方法包括:
步骤S301,响应于接收到上述设备控制端发送的控制信号;上述控制信号包括控制指令和目标第一设备标识。
步骤S302,基于上述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,上述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识。
步骤S303,响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备。
步骤S304,调用异步消息发送函数将控制指令转发至目标播种设备。
在一些实施例的一些可选的实现方式中,上述方法还包括:响应于接收到上述设备控制端的连接请求,与上述设备控制端和上述目标播种设备建立连接;响应于连接建立成功,与目标播种设备或设备控制端进行全双工数据交互。
在一些实施例的一些可选的实现方式中,上述方法还包括:上述目标服务器还被配置为:响应于接受到上述设备控制端的连接请求,确定上述哈希值查询表内是否存在上述连接请求对应的第一设备标识;若存在,则删除哈希值查询表内上述连接请求对应的第一设备标识;根据上述连接请求,与上述设备控制端和上述目标播种设备建立连接。
在一些实施例的一些可选的实现方式中,在响应于接受到上述设备控制端的连接请求,确定上述哈希值查询表内是否存在上述连接请求对应的第一设备标识之后,上述方法还包括:若不存在,则将上述连接请求对应的第一设备标识存储至上述哈希值查询表内;根据上述连接请求,与上述设备控制端和上述目标播种设备建立连接。
在一些实施例的一些可选的实现方式中,上述哈希值查询表用于存储Web Socket连接数据并对上述Websocket连接数据进行分段加锁。
在一些实施例的一些可选的实现方式中,若上述目标播种设备无法接收数据,上述方法还包括:若检测到WebSocket连接状态由连接成功状态转为其他状态时,则向上述目标服务器发送重连请求;根据退避算法处理上述重连请求,直至重连成功。
在一些实施例的一些可选的实现方式中,若上述目标播种设备无法接收数据,在根据预设时间间隔发送心跳包至目标服务器之后,上述方法还包括:若检测到WebSocket连接状态由其他状态转为连接成功状态时,发送心跳包至目标服务器以确定连接是否可用;若连接不可用,则向上述目标服务器发送重连请求;根据退避算法处理上述重连请求,直至重连成功。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。
下面参考图4,其示出了适于用来实现本公开的一些实施例的电子设备(例如图1中的计算设备101)400的结构示意图。图4示出的服务器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有电子设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图4中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM 402被安装。在该计算机程序被处理装置401执行时,执行本公开的一些实施例的方法中限定的上述功能。
需要说明的是,本公开的一些实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText Tra nsferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述装置中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:响应于接收到上述设备控制端发送的控制信号;上述控制信号包括控制指令和目标第一设备标识;基于上述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,上述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识;响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备;调用异步消息发送函数将控制指令转发至目标播种设备。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种基于WebSocket的控制系统,包括若干播种设备、目标服务器和设备控制端;所述若干播种设备和所述目标服务器通过WebSocket进行通信;
所述目标服务器被配置为:
响应于接收到所述设备控制端发送的控制信号;所述控制信号包括控制指令和目标第一设备标识;
基于所述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,所述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识;
响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备;
调用异步消息发送函数将控制指令转发至目标播种设备。
2.如权利要求1所述的基于WebSocket的控制系统,其特征在于,所述目标服务器还被配置为:
响应于接收到所述设备控制端的连接请求,与所述设备控制端和所述目标播种设备建立连接;
响应于连接建立成功,与目标播种设备或设备控制端进行全双工数据交互。
3.如权利要求1所述的基于WebSocket的控制系统,其特征在于,所述目标服务器内设置哈希值查询表,所述目标服务器还被配置为:
响应于接受到所述设备控制端的连接请求,确定所述哈希值查询表内是否存在所述连接请求对应的第一设备标识;
若存在,则删除哈希值查询表内所述连接请求对应的第一设备标识;
根据所述连接请求,与所述设备控制端和所述目标播种设备建立连接。
4.如权利要求3所述的基于WebSocket的控制系统,其特征在于,在响应于接受到所述设备控制端的连接请求,确定所述哈希值查询表内是否存在所述连接请求对应的第一设备标识之后,所述目标服务器还被配置为:
若不存在,则将所述连接请求对应的第一设备标识存储至所述哈希值查询表内;
根据所述连接请求,与所述设备控制端和所述目标播种设备建立连接。
5.如权利要求3或4所述的基于WebSocket的控制系统,其特征在于,所述哈希值查询表用于存储WebSocket连接数据并对所述Websocket连接数据进行分段加锁。
6.如权利要求1所述的基于WebSocket的控制系统,其特征在于,若所述目标播种设备无法接收数据,所述设备控制端被配置为:
若检测到WebSocket连接状态由连接成功状态转为其他状态时,则向所述目标服务器发送重连请求;
根据退避算法处理所述重连请求,直至重连成功。
7.如权利要求1所述的基于WebSocket的控制系统,其特征在于,若所述目标播种设备无法接收数据,在根据预设时间间隔发送心跳包至目标服务器之后,所述设备控制端被配置为:
若检测到WebSocket连接状态由其他状态转为连接成功状态时,发送心跳包至目标服务器以确定连接是否可用;
若连接不可用,则向所述目标服务器发送重连请求;
根据退避算法处理所述重连请求,直至重连成功。
8.一种基于WebSocket的控制方法,其特征在于,包括:
响应于接收到所述设备控制端发送的控制信号;所述控制信号包括控制指令和目标第一设备标识;
基于所述目标第一设备标识,确定预设设备集合中是否存在第二设备标识为目标第二设备标识的播种设备;其中,所述目标第二设备标识为目标第一设备标识对应的播种设备的第二设备标识;
响应于预设设备集合中存在第二设备标识为目标第二设备标识的播种设备,确定第二设备标识为目标第二设备标识的播种设备为目标播种设备;
调用异步消息发送函数将控制指令转发至目标播种设备。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可以在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求8中所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求8中所述方法的步骤。
CN202311175898.1A 2023-09-12 2023-09-12 基于WebSocket的控制系统、方法、设备和介质 Pending CN117201562A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311175898.1A CN117201562A (zh) 2023-09-12 2023-09-12 基于WebSocket的控制系统、方法、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311175898.1A CN117201562A (zh) 2023-09-12 2023-09-12 基于WebSocket的控制系统、方法、设备和介质

Publications (1)

Publication Number Publication Date
CN117201562A true CN117201562A (zh) 2023-12-08

Family

ID=89003187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311175898.1A Pending CN117201562A (zh) 2023-09-12 2023-09-12 基于WebSocket的控制系统、方法、设备和介质

Country Status (1)

Country Link
CN (1) CN117201562A (zh)

Similar Documents

Publication Publication Date Title
CN108200165B (zh) 请求传输系统、方法、装置及存储介质
US20200059353A1 (en) Data fetching in data exchange networks
US20040186918A1 (en) Method and apparatus for dispatching incoming data in a multi-application terminal
CN108418884A (zh) 一种传输业务数据的方法、装置及电子设备
JP2024525140A (ja) データインタラクションのための方法および装置
US10536560B2 (en) System and method for implementing augmented object members for remote procedure call
WO2023273240A1 (zh) 微服务调用方法、装置、电子设备和可读存储介质
US10938960B2 (en) System and method for implementing augmented object members for remote procedure call
WO2018132557A1 (en) Dynamic protocol switching
CN117201562A (zh) 基于WebSocket的控制系统、方法、设备和介质
CN113900976B (zh) 联邦学习中dma连接建立方法
US11973682B2 (en) Dynamic mesh mapping service
CN113553206A (zh) 数据事件执行方法、装置、电子设备和计算机可读介质
CN115996187A (zh) 路由信息处理方法、装置、路由信息交互系统和路由设备
CN111107166B (zh) 会话同步方法、装置、电子设备和介质
CN111490997B (zh) 任务处理方法、代理系统、服务系统和电子设备
CN113763646A (zh) 设备控制方法、装置、电子设备和计算机可读介质
CN112165531A (zh) 基于监听设备端口实现的通信方法、设备和存储介质
CN116938598B (zh) 信息发送方法、装置、电子设备和计算机可读介质
CN114172946B (zh) 请求结果发送方法、装置、电子设备和计算机可读介质
CN113849756B (zh) 信息生成方法、装置、电子设备和计算机可读介质
CN112671822B (zh) 服务请求处理方法、装置、存储介质、服务器和系统
WO2004062188A2 (en) Generic communication server engine
CN113535428B (zh) 请求消息和响应消息的处理方法、装置、设备和介质
CN115297046B (zh) 网关信息发送方法、装置、电子设备、介质和产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination