CN115314541A - 远程调试方法、通信系统、电子设备和存储介质 - Google Patents
远程调试方法、通信系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115314541A CN115314541A CN202211245389.7A CN202211245389A CN115314541A CN 115314541 A CN115314541 A CN 115314541A CN 202211245389 A CN202211245389 A CN 202211245389A CN 115314541 A CN115314541 A CN 115314541A
- Authority
- CN
- China
- Prior art keywords
- debugging
- terminal
- node
- debugged
- session
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004891 communication Methods 0.000 title claims abstract description 43
- 238000009434 installation Methods 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000002349 favourable effect Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种远程调试方法、通信系统、电子设备和存储介质。所述远程调试方法包括:生成针对会话连接的会话接入请求;基于异步消息协议,向终端管理节点的发送所述会话接入请求,与所述终端管理节点建立所述会话连接,所述终端管理节点用于管理调试节点所调试的至少一个终端;基于所述会话连接,接收所述终端管理节点转发所述调试节点的调试指令。本发明实施例的方案提高了调试节点对大量待调试终端的远程调试效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种远程调试方法、通信系统、电子设备和存储介质。
背景技术
诸如云手机的待调试终端能够与终端管理节点之间建立会话连接,以对各个待调试终端进行集中管理,同时,调试节点将终端管理节点作为中台服务端,实现了对待调试终端的远程调试访问和远程调试控制。
如图1所示,在传统技术中,终端管理节点120与云手机111之间的会话连接可以借助本地服务器112实现,云手机111与本地服务器112处于本地调试环境中。
安卓调试桥(Android Debug Bridge,ADB)是一种采用服务端/客户端架构的调试接口,本地服务器112与云手机111之间可以采用诸如安卓调试桥(Android Debug Bridge,ADB)的调试接口与云手机111进行连接,例如,将本地服务器中的调试程序作为客户端,将云手机作为安卓调试桥的主机,通过调试程序向主机基于安卓调试桥传输调试请求。此外,本地服务器112与远程调试环境中的终端管理节点120进行连接,从而使云手机111接入到终端管理节点120的会话服务。
诸如安卓调试桥的调试手段实际上利用了云手机111中的操作系统的预设调试接口,通常这样的预设调试接口适用于本地调试,对本地服务器112的依赖较大,预设调试接口往往用于有线方式连接到本地服务器112。随着移动业务越来越复杂,对终端能力需求也越来越多,使得诸如云手机111的待调试终端的数量较大。因此,在采用诸如安卓调试桥的调试手段的情况下,云手机111与本地服务器112的有线连接容易到达瓶颈,导致各个待调试终端的整体调试效率较低。
发明内容
有鉴于此,本发明实施例提供一种远程调试方法、通信系统、电子设备和存储介质,以至少部分解决上述问题。
根据本发明实施例的第一方面,提供了一种远程调试方法,应用于待调试终端,包括:生成针对会话连接的会话接入请求;基于异步消息协议,向终端管理节点的发送所述会话接入请求,与所述终端管理节点建立所述会话连接,所述终端管理节点用于管理调试节点所调试的至少一个终端;基于所述会话连接,接收所述终端管理节点转发所述调试节点的调试指令。
根据本发明实施例的第二方面,提供了一种远程调试方法,应用于终端管理节点,包括:基于异步消息协议,接收待调试终端的会话接入请求;根据所述会话接入请求,建立与所述待调试终端之间的会话连接;基于同步消息协议,接收调试节点针对所述待调试终端的调试指令;基于所述会话连接,向所述待调试终端转发所述调试指令。
根据本发明实施例的第三方面,提高了一种通信系统,包括:待调试终端、终端管理节点以及调试节点。所述待调试终端生成针对会话连接的会话接入请求,并且基于异步消息协议,向所述终端管理节点的发送所述会话接入请求,与所述终端管理节点建立所述会话连接。所述终端管理节点用于管理调试节点所调试的至少一个终端,并且基于所述会话连接,接收所述终端管理节点转发所述调试节点的调试指令。
根据本发明实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据第一方面所述的待调试终端或根据第二方面所述的终端管理节点的操作。
根据本发明实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据第一方面所述的待调试终端或根据第二方面所述的终端管理节点的操作。
在本发明实施例的方案中,待调试终端通过异步消息协议建立与终端管理节点之间的会话连接,异步消息协议实现了待调试终端的灵活接入,有利于大量待调试终端接入到终端管理节点,异步消息协议还有利于降低待调试终端的配置要求,进一步有利于低成本终端的接入,因此,经由待调试终端实现了调试节点的调试控制,提高了调试节点对大量待调试终端的远程调试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据传统技术的通信系统的示意性架构图。
图2为根据本发明的一个实施例的通信系统的示意性架构图。
图3为适用于图2的通信系统的远程调试过程的示意性交互图。
图4为适用于图2的通信系统的远程调试过程的示意性交互图。
图5为根据本发明的一个实施例的远程调试方法的步骤流程图。
图6为根据本发明的另一实施例的远程调试方法的步骤流程图。
图7为根据本发明的另一实施例的电子设备的示意性结构图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
图2为根据本发明的一个实施例的通信系统的示意性架构图。图2的通信系统包括终端管理节点10、待调试终端20以及调试节点30。
待调试终端20可以是安装有诸如安卓系统、IOS系统、实时操作系统等嵌入式系统的终端设备(例如,手机)或物联网设备(例如,低端通信设备)。终端管理节点10用于管理至少一个终端,待调试终端20能够由调试节点30访问,配合调试节点30实现至少一个终端的调试操作。
采用通信系统进行终端调试
具体地,调试节点30可以是诸如安装有浏览器或客户端程序的通信设备,终端管理节点10可以是部署有调试管理组件12和测试用例的云服务器。用户通过浏览器或客户端程序访问云服务器中的调试管理组件,调试管理组件能够向调试节点30的浏览器或客户端呈现调试界面,调节界面中展示了至少一个终端的虚拟对象,从而用户能够在虚拟对象上进行诸如点击、拖动、选择、输入等操作进行待调试终端的调试过程。
测试用例和至少一个终端的终端信息可以存储在数据库13中,调试管理组件12能够根据用户在调试节点30向终端管理节点10发送的操作,从数据库13中获取相应的测试用例和待调试终端的终端信息。例如,在对目标待调试终端进行调试时,用户可以通过浏览器或客户端程序执行操作,通过调试管理组件12从数据库13获取相关的测试用例以及目标待调试终端的终端信息,相应地,在调试界面中展示了目标待调试终端的虚拟对象,终端信息使虚拟对象能够经由操作生成相应的调试指令(例如,下文的第一调试指令和第二调试指令)。进一步地,用户通过浏览器或客户端程序在虚拟对象上执行UI调试操作等黑盒调试操作,调试管理组件12根据UI调试操作等黑盒调试操作生成调试指令,并且将调试指令传输到目标待调试终端,获取调试指令的调试响应展示到客户端程序或浏览器。举例来说,上述的调试操作可以是目标待调试终端的开机/关机操作,在目标待调试终端中启动一应用程序的点击操作、目标待调试终端的应用程序中的控件触发操作、目标待调试终端的屏幕上的滑动操作等,相应地,调试响应可以是指示开机/关机响应的信息、指示应用程序启动的信息、指示控件触发操作响应的信息、指示屏幕上的滑动操作响应的信息。在调试界面中,可以展示虚拟对象在完成目标待调试终端的调试操作之后的图形画面响应,这个图形画面响应可以根据指示目标待调试终端的调试响应的信息生成。例如,响应信息为指示正常状态的信息,则图形画面展示调试操作的正常画面,例如,虚拟对象变成正常开机/关机后的画面;如果响应信息为指示异常状态的信息,则图形画面展示调试操作的异常画面。上述的图形画面响应与响应信息之间的关系可以配置到调试管理组件12中,图形画面响应与响应信息之间的关系可以根据经验获得。
搭建通信系统
终端管理节点10可以安装有消息中间件11和调试管理组件12,消息中间件是一种用于异步消息队列管理的服务器组件,消息中间件11既与调试管理组件12执行异步消息协议的通信,又与待调试终端执行异步消息协议的通信。异步消息协议可以是基于传输层的异步消息协议,例如,JMS(Java Messaging Service Java,消息服务)、STOMP(StreamingText Orientated Message Protocol,面向流文本的消息协议)、AMQP:(Advanced MessageQueuing Protocol,高级消息队列协议)、以及MQTT(Message Queuing TelemetryTransport,消息队列遥测传输)中的任一者。优选地,消息中间件11可以诸如消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)的消息队列管理程序。
下面以MQTT代理程序的消息中间件为例描述消息中间件的作用和功能。首先,调试管理组件12与待调试终端20可以分别通过订阅的方式建立与MQTT代理程序的消息连接,从而MQTT代理程序能够在调试管理组件12与待调试终端20之间进行消息的异步转发,由于无需等待发出消息的响应,提高了MQTT代理程序与各种配置的待调试终端之间的消息连接,即,提高了通信系统中的待调试终端的种类的灵活性,例如,在待调试终端为低成本通信设备时,无需适配诸如HTTP等同步消息协议的配置,同样能够通过MQTT代理程序连接到终端管理节点10。待调试终端可以通过自身的接入控制模块与MQTT代理程序进行通信,接入控制模块可以实现为独立的接入控制程序,也可以实现为具有接入控制能力的应用程序或控制程序。更具体地,接入控制模块预先安装到所述待调试终端的固件存储介质中,也就是说,接入控制模块可以通过与嵌入式操作系统的规范配置成安装程序,在终端安装所述安装程序之后,可以执行接入控制模块。例如,在待调试终端为安装有安卓系统的云手机时,接入控制模块的apk安装包安装到云中端的只读存储器(Read-Only Memory,ROM)中,避免了接入控制模块被修改,也保证了接入控制模块的运行稳定性。
具体地,待调试终端在启动所述接入控制模块的运行时,触发会话接入请求的生成,进一步地,待调试终端在启动所述嵌入式系统时,通过所述固件存储介质引导所述接入控制模块的启动。
此外,调试管理组件12也与MQTT代理程序进行消息通信,在调试管理组件12与MQTT代理程序均配置在终端管理节点10中时,调试管理组件12中的各个内部功能模块与MQTT代理程序实现了解耦,在与调试管理功能相关的内部功能模块需要升级或变更时,不需要对消息中间件11执行较大配置变动。
进一步地,基于MQTT代理程序,待调试终端20能够向终端管理节点10中的调试管理组件12发送接入请求,以接入到调试管理组件12的会话服务。例如,可以通过上述接入控制模块生成接入请求,将接入请求封装成MQTT协议的消息,经由MQTT代理程序转发到调试管理组件12,调试管理组件12基于MQTT协议解封装,得到接入请求,从而建立了待调试终端20与调试管理组件12之间的会话连接。
应理解,消息中间件11的配置侧重于消息异步管理和收发,例如,消息中间件11接收待调试终端的目标消息,异步地向调试管理组件12转发目标消息,也就是说,无需待调试终端无需等待消息中间件11的响应,目标消息可以暂时由消息中间件11管理,待调试终端也不需要间接地等待调试管理组件12的响应。
此外,调试管理组件12的配置侧重于各个待调试终端的调试管理,调试管理组件12基于诸如HTTP的同步消息协议获取调试节点30的调试操作,基于异步消息协议,将调试操作的信息封装成调试指令,然后,调试管理组件12基于会话连接将调试指令发送到待调试终端。调试管理组件12能够由调试节点30访问,配合调试节点30实现调试操作,同时,通过消息中间件11的异步消息协议与待调试终端进行会话连接,会话连接既可以用于调试指令从调试管理组件12传输到待调试终端20,也可以用于调试结果从待调试终端20传输到调试管理组件12。
在建立了会话连接之后,调试管理组件12可以通过HTTP或websocket等同步消息协议调试管理组件12获取调试节点30的调试操作信息,调试管理组件12根据调试操作信息、生成基于MQTT协议封装的调试指令。例如,调试节点30可以与调试管理组件12通过HTTP协议建立websocket会话连接,在调试节点30获取到用户输入的调试操作信息时,基于websocket会话连接,将远程调试操作发送到调试管理组件12,调试管理组件12相应地生成远程调试操作的调试指令。然后,调试管理组件12向MQTT代理程序发送调试指令。在调试指令到达MQTT代理程序之后,MQTT代理程序无需同步地转发调试指令到一待调试终端,也无需发送到特定待调试终端,而是,任一待调试终端可以从MQTT代理程序异步地获取这个调试指令,即,多个待调试终端均可以向MQTT代理程序请求获取这个调试指令,避免了调试指令的多次发送。
例如,调试指令可以携带有多个待调试终端的标识,在MQTT代理程序接收到请求的待调试终端的标识与所携带的标识匹配时,向这个待调试终端返回调试指令。
又例如,调试节点可以同时调试多个待调试终端,即,对多个待调试终端进行了调试操作,调试管理组件12根据接收到各个调试指令的时间生成了MQTT代理程序的调试指令序列Ci(m,n),其中,i为正整数,指示调试指令序列中第几个调试指令,m表示调试指令的类型标识,n为待调试终端的终端标识。可见,调试指令序列不必然基于待调试终端排序,也不必然根据调试指令类型排序。在待调试终端向MQTT代理程序请求调试指令时,MQTT代理程序可以将当前调试指令序列中与待调试终端的标识匹配的所有的调试指令发送到这个待调试终端,通过异步消息管理提高了消息传输效率,进而提高了远程调试效率。
又例如,MQTT代理程序还可以提取当前调试指令序列中特定类型标识的所有调试指令,相应地将每个调试指令发送到与终端标识匹配的待调试终端,通过异步消息管理提高了消息传输效率,进而提高了远程调试效率。
此外,终端管理节点可以部署在公网中,在待调试终端和调试节点位于局域网或公网的情况下,都能实现与终端管理节点的连接。在传统技术中,本地服务器部署在局域网中,使得待调试终端也需要部署在局域网中才能执行调试操作,与此相比,本发明实施例通过接入控制模块灵活且可靠地接入到终端管理节点中的调试管理组件,减小了待调试终端和调试节点的网络环境的限制。
下面将结合图3详细地本发明实施例的描述远程调试过程。图3的远程调试过程可以适用于图2的通信架构,即,远程调试过程应用于待调试终端20、调试节点30、终端管理节点10之间的通信。待调试终端20中安装有接入控制模块21,终端管理节点10中安装有消息中间件11和调试管理组件12。调试节点30中可以安装有浏览器31,调试节点30是与待调试终端20不同的通信设备。
S210:待调试终端在启动嵌入式系统时,触发接入控制模块的启动指令。
S220:待调试终端通过启动指令启动接入控制模块。
S230:待调试终端在运行接入控制模块时,触发连接请求的生成。
S290:在终端管理节点中通过消息中间件与调试管理组件的消息连接。例如,调试管理组件作为MQTT客户端与MQTT代理程序建立连接。
S240:接入控制模块建立与消息中间件的消息连接,并且向消息中间件发送会话接入请求。例如,作为MQTT客户端向MQTT代理程序发送连接请求,建立与MQTT代理程序的连接。
S250:消息中间件向调试管理组件转发会话接入请求,完成待调试终端到调试管理组件的会话服务接入。
S260:调试节点与终端管理节点的调试管理组件建立会话连接。调试管理组件预先与调试节点具有诸如TCP/IP的传输层连接,然后,基于传输层连接,会话服务器可以与调试节点建立会话连接。在调试管理组件与调试节点以及待调试终端均具有会话连接时,表明待调试终端与调试节点之间建立了会话连接。
S270:待调试终端接收来自调试节点的远程调试操作的调试指令。即,终端管理节点获取来自调试节点的远程调试操作,并且生成远程调试操作的调试指令,调试指令包括但不限于UI调试指令等黑盒调试指令。在大量的待调试终端的情况下,可以通过调试节点经由调试管理组件主动向待调试终端发起会话邀请,例如,在会话邀请消息中包括待调试终端的标识,调试管理组件为这个待调试终端分配所邀请的会话。
S280:待调试终端根据调试指令,向调试节点返回调试结果。即,调试结果包括但不限于UI调试指令等黑盒调试结果。应理解,在本示例中,调试指令通过待调试终端与调试管理组件之间用于消息传输的会话连接进行发送,调试结果也通过会话连接进行发送。
关于媒体连接过程
再次参考图2,在另一些示例中,通信系统100还可以包括中继服务端40,调试节点30能够通过中继服务端40与待调试终端20进行媒体数据传输和媒体控制。
作为建立上述媒体连接的一个示例,调试节点通过与调试管理组件之间的websocket连接,触发媒体连接请求。调试管理组件利用MQTT消息协议封装媒体连接请求,发送到消息中间件,媒体连接请求至少用于请求待调试终端的回调接口。消息中间件将媒体连接请求转发到待调试终端的接入控制模块,接入控制模块通过MQTT消息协议解析媒体连接请求。更一般地,基于会话连接,终端管理节点通过调试管理组件,向待调试终端转发调试节点的媒体连接请求。
然后,接入控制模块生成诸如URL(unified resource link,统一资源链接)的回调接口。接入控制模块将回调接口封装到MQTT消息协议的媒体连接响应中。经由消息中间件,MQTT消息协议的媒体连接响应被转发到调试管理组件,调试管理组件将MQTT消息协议的媒体连接响应转换成基于websocket连接的媒体连接响应,发送到调试节点。调试节点从媒体连接响应从解析回调接口,当回调接口在调试节点被触发时,形成远程调试操作。
相应地,在中继服务端的情况下,待调试终端通过接入控制模块,接收媒体连接请求中的第一会话标识,待调试终端通过接入控制模块,向中继服务端发送包括第一会话标识的第一媒体中继请求,第一媒体中继请求可以采用与中继服务端之间的websocket连接发送。
此外,调试节点向中继服务端发送包括第二会话标识的第二媒体中继请求。第二媒体中继请求可以采用与中继服务端之间的websocket连接发送。
在这种情况下,中继服务端判断第一会话标识和第二会话标识是否匹配,如果匹配,则说明第一会话标识和第二会话标识表示同一会话,也就是说,在中继服务端能够基于同一会话的标识关联待调试终端与调试节点,实现了基于websocket连接的媒体中继服务。
在一个示例中,待调试终端通过会话连接接收第一调试指令,第一调试指令指示接入控制模块对待调试终端进行录屏操作,然后,待调试终端通过接入控制模块生成录屏操作的视频流,然后,待调试终端通过媒体连接,向调试节点返回视频流。也就是说,第一调试指令所需要的通信资源较少,经由会话连接传输,录屏操作的视频流所需的通信资源较多,经由媒体连接传输,从而提高了调试操作的效率。
可替代地,待调试终端也可以通过媒体连接接收第二调试指令,第二调试指令指示接入控制模块对待调试终端进行录屏操作,也就是说,第二调试指令与录屏操作的视频流也可以均经由媒体连接传输,如图4的示例所描述。
可替代地,在待调试终端与调试节点均连接到中继服务端的情况下,待调试终端与调试节点(即,浏览器或客户端程序)处于同一会话中,待调试终端可以向中继服务端发送第一回调接口(对应于上一示例的回调接口URL),中继服务端存储第一回调接口,然后,发送与第一回调接口关联的第二回调接口(例如,与第一回调接口不同的URL)到调试节点。在调试节点触发第二回调接口时,生成第二调试指令,中继服务端根据第二调试指令,触发第一回调接口,相应地获得待调试终端返回的录屏操作的视频流。然后,中继服务端作为第一回调接口的请求数据返回到调试节点,从而借助于中继服务端在待调试终端与调试节点之间更可靠地转发了调试指令和视频流。
可替代地,待调试终端可以在第一媒体中继请求中包括第一会话标识和第一回调接口,在中继服务端匹配第一会话标识和第二会话标识时,生成与第一回调接口关联的第二回调接口,并且将第二回调接口发送到调试节点。由此,在待调试终端与调试节点之间的会话中继建立之前,待调试终端返回了第一回调接口,并且在待调试终端与调试节点之间的会话中继建立的同时,中继服务端生成了第二回调接口,从而在待调试终端与调试节点之间更可靠地转发了调试指令和视频流。
下面将结合图4描述作为远程调试过程示例的媒体连接建立过程。与图3不同,图4的远程调试过程应用于待调试终端20、调试节点30、终端管理节点10、中继服务端40之间。具体地,图4的媒体连接建立过程包括如下步骤:
S410:终端管理节点基于websocket连接接收调试节点发送的媒体连接请求。具体地,媒体连接请求在会话中生成,包括会话的标识,即,第一会话标识。
S420:终端管理节点基于MQTT协议,向接入控制模块转发媒体连接请求。具体地,调试管理组件将基于websocket连接的媒体连接请求转换为基于MQTT协议的媒体连接请求,向待调试终端发送。
S430:待调试终端通过接入控制模块,向中继服务端发送第一媒体中继请求。具体地,在接入控制模块接收到调媒体连接请求时,解析出第一会话标识,再将第一会话表示封装到第一媒体中继请求中,使中继服务端获取到第一会话标识。
S440:调试节点基于websocket连接,向中继服务端发送媒体中继请求。具体地,媒体中继连接请求在会话中生成,包括会话的标识,即,第二会话标识,以便使中继服务端获取到第二会话标识。
在第一会话标识与第二会话标识指示同一会话时,调试节点与待调试终端之间的媒体连接建立。
S450:通过媒体连接,调试节点向接入控制模块转发录屏指令。具体地,调试节点基于媒体连接向中继服务端发送录屏指令,中继服务端通过基于媒体连接向接入控制模块转发录屏指令,录屏指令指示接入控制模块对终端执行录屏,应理解,媒体连接请求、录屏指令可以理解成会话控制请求的示例。
S460:接入控制模块在待调试终端的硬件环境中创建虚拟显示器。具体地,接入控制模块在接收到录屏指令时,调用终端的显示驱动程序,生成虚拟显示器。
S470:接入控制模块读取虚拟显示器的录屏视频流,并执行录屏视频流的编码。具体地,接入控制模块可以配置成执行视频帧编码,可以采用H.264编码或者其他视频编码标准编码录屏视频流。
S480:接入控制模块向调试节点返回编码的录屏视频流。具体地,可以在接收到录屏中止指令时,删除虚拟显示器。
下面将结合图5和图6描述图3和图4的远程调试过程的更一般的情况。图5为根据本发明的一个实施例的远程调试方法的步骤流程图。
本实施例的远程调试方法应用于待调试终端,包括:
S510:生成针对会话连接的会话接入请求。
S520:基于异步消息协议,向终端管理节点的发送会话接入请求,与终端管理节点建立会话连接,终端管理节点用于管理调试节点所调试的至少一个终端。
S530:基于会话连接,接收终端管理节点转发调试节点的调试指令。
在本发明实施例的方案中,待调试终端通过异步消息协议建立与终端管理节点之间的会话连接,异步消息协议实现了待调试终端的灵活接入,有利于大量待调试终端接入到终端管理节点,异步消息协议还有利于降低待调试终端的配置要求,进一步有利于低成本终端的接入,因此,经由待调试终端实现了调试节点的调试控制,提高了调试节点对大量待调试终端的远程调试效率。
在另一些示例中,远程调试方法还包括:获取接入控制安装包;将接入控制安装包安装到本地的嵌入式系统中,生成接入控制模块;通过接入控制模块,触发会话接入请求的生成,并且接收调试节点指令。
在另一些示例中,接入控制安装包预先安装到本地的固件存储介质中。远程调试方法还包括:在启动嵌入式系统时,通过固件存储介质引导接入控制模块的启动。
在另一些示例中,远程调试方法还包括:接入控制模块执行调试指令,对待调试终端进行调试,得到调试结果;通过会话连接,将调试结果返回到终端管理节点调试管理组件,调试管理组件呈现给调试节点。
在另一些示例中,远程调试方法还包括:基于会话连接,调试管理组件接收终端管理节点转发调试节点的媒体连接请求;基于会话连接,将媒体连接请求的回调接口经由终端管理节点返回到调试节点,回调接口用于在触发时生成调试节点的第一调试指令。
在另一些示例中,媒体连接请求包括第一会话标识。远程调试方法还包括:根据媒体连接请求,向中继服务端发送包括第一会话标识的第一媒体中继请求。中继服务端用于匹配第一会话标识和调试节点的第二媒体中继请求的第二会话标识,建立待调试终端与调试节点之间的媒体连接,媒体连接用于传输待调试终端的媒体流和/或调试节点的第二调试指令。
在另一些示例中,第一调试指令指示待调试终端的录屏操作。远程调试方法还包括:根据调试节点的第一调试指令,生成待调试终端的录屏视频流;基于媒体连接,经由终端管理节点向调试节点转发录屏视频流。
图6为根据本发明的另一实施例的远程调试方法的步骤流程图。
本实施例的远程调试方法应用于终端管理节点,包括:
S610:基于异步消息协议,接收待调试终端的会话接入请求。
S620:根据会话接入请求,建立与待调试终端之间的会话连接。
S630:基于同步消息协议,接收调试节点针对待调试终端的调试指令。
S640:基于会话连接,向待调试终端转发调试指令。
在本发明实施例的方案中,待调试终端通过异步消息协议建立与终端管理节点之间的会话连接,异步消息协议实现了待调试终端的灵活接入,有利于大量待调试终端接入到终端管理节点,异步消息协议还有利于降低待调试终端的配置要求,进一步有利于低成本终端的接入,因此,经由待调试终端实现了调试节点的调试控制,提高了调试节点对大量待调试终端的远程调试效率。
在另一些示例中,远程调试方法还包括:基于会话连接,接收调试指令对待调试终端的调试结果;向调试节点转发调试结果。
在另一些示例中,远程调试方法还包括:向待调试终端转发调试节点的媒体连接请求,媒体连接请求用于请求待调试终端的回调接口;基于所述会话连接,经由所述终端管理节点将所述回调接口返回到所述调试节点,所述回调接口用于在触发时生成所述调试节点的第一调试指令。
本实施例的通信系统用于实现前述多个方法实施例中相应的方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
参照图7,示出了根据本发明的另一实施例的电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图7所示,该电子设备可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储有程序710的存储器(memory)706、以及通信总线708。
处理器、通信接口、以及存储器通过通信总线完成相互间的通信。
通信接口,用于与其它电子设备或服务器进行通信。
处理器,用于执行程序,具体可以执行上述方法实施例中的相关步骤。
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
处理器可能是处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序具体可以用于使得处理器执行以下终端管理节点10或者待调试终端20的操作。
此外,程序中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (13)
1.一种远程调试方法,应用于待调试终端,包括:
生成针对会话连接的会话接入请求;
基于异步消息协议,向终端管理节点的发送所述会话接入请求,与所述终端管理节点建立所述会话连接,所述终端管理节点用于管理调试节点所调试的至少一个终端;
基于所述会话连接,接收所述终端管理节点转发所述调试节点的调试指令。
2.根据权利要求1所述的方法,其中,所述方法还包括:
获取接入控制安装包;
将所述接入控制安装包安装到本地的嵌入式系统中,生成接入控制模块;
通过所述接入控制模块,触发所述会话接入请求的生成,并且接收所述调试节点指令。
3.根据权利要求2所述的方法,其中,所述接入控制安装包预先安装到本地的固件存储介质中,所述方法还包括:
在启动所述嵌入式系统时,通过所述固件存储介质引导所述接入控制模块的启动。
4.根据权利要求2所述的方法,其中,所述方法还包括:
接入控制模块执行所述调试指令,对所述待调试终端进行调试,得到调试结果;
通过所述会话连接,将所述调试结果返回到所述终端管理节点调试管理组件,调试管理组件呈现给所述调试节点。
5.根据权利要求1所述的方法,其中,所述方法还包括:
基于所述会话连接,调试管理组件接收所述终端管理节点转发所述调试节点的媒体连接请求;
基于所述会话连接,将所述媒体连接请求的回调接口经由所述终端管理节点返回到所述调试节点,所述回调接口用于在触发时生成所述调试节点的第一调试指令。
6.根据权利要求5所述的方法,其中,所述媒体连接请求包括第一会话标识;
所述方法还包括:
根据所述媒体连接请求,向中继服务端发送包括所述第一会话标识的第一媒体中继请求,
其中,所述中继服务端用于匹配所述第一会话标识和所述调试节点的第二媒体中继请求的第二会话标识,建立所述待调试终端与所述调试节点之间的媒体连接,所述媒体连接用于传输所述待调试终端的媒体流和/或所述调试节点的第二调试指令。
7.根据权利要求6所述的方法,其中,所述第一调试指令指示所述待调试终端的录屏操作;
所述方法还包括:
根据所述调试节点的第一调试指令,生成所述待调试终端的录屏视频流;
基于所述媒体连接,经由所述终端管理节点向所述调试节点转发所述录屏视频流。
8.一种远程调试方法,应用于终端管理节点,包括:
基于异步消息协议,接收待调试终端的会话接入请求;
根据所述会话接入请求,建立与所述待调试终端之间的会话连接;
基于同步消息协议,接收调试节点针对所述待调试终端的调试指令;
基于所述会话连接,向所述待调试终端转发所述调试指令。
9.根据权利要求8所述的方法,其中,所述方法还包括:
基于所述会话连接,接收所述调试指令对所述待调试终端的调试结果;
向所述调试节点转发所述调试结果。
10.根据权利要求8所述的方法,其中,所述方法还包括:
向所述待调试终端转发所述调试节点的媒体连接请求,所述媒体连接请求用于请求所述待调试终端的回调接口;
基于所述会话连接,经由所述终端管理节点将所述回调接口返回到所述调试节点,所述回调接口用于在触发时生成所述调试节点的第一调试指令。
11.一种通信系统,包括:
待调试终端、终端管理节点以及调试节点;
其中,所述待调试终端生成针对会话连接的会话接入请求,并且基于异步消息协议,向所述终端管理节点的发送所述会话接入请求,与所述终端管理节点建立所述会话连接;
其中,所述终端管理节点用于管理调试节点所调试的至少一个终端,并且基于所述会话连接,接收所述终端管理节点转发所述调试节点的调试指令。
12.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行权利要求1-7中任一项所述的待调试终端或权利要求8-10中任一项所述的终端管理节点的操作。
13.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7中任一项所述的待调试终端或权利要求8-10中任一项所述的终端管理节点的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211245389.7A CN115314541A (zh) | 2022-10-12 | 2022-10-12 | 远程调试方法、通信系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211245389.7A CN115314541A (zh) | 2022-10-12 | 2022-10-12 | 远程调试方法、通信系统、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115314541A true CN115314541A (zh) | 2022-11-08 |
Family
ID=83868018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211245389.7A Pending CN115314541A (zh) | 2022-10-12 | 2022-10-12 | 远程调试方法、通信系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314541A (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151452A1 (en) * | 2010-12-14 | 2012-06-14 | Microsoft Corporation | Remote debugging of server side code without blocking or high-level privileges |
CN103577209A (zh) * | 2012-08-06 | 2014-02-12 | 浙江大华技术股份有限公司 | 一种基于嵌入式设备的应用程序远程在线调试方法及装置 |
CN108270819A (zh) * | 2016-12-30 | 2018-07-10 | 上海擎感智能科技有限公司 | 移动设备的远程调试方法、服务器及系统 |
CN109257211A (zh) * | 2018-09-07 | 2019-01-22 | 广州微算互联信息技术有限公司 | 云手机批量初始化方法与系统 |
CN109408310A (zh) * | 2018-10-19 | 2019-03-01 | 网易(杭州)网络有限公司 | 服务器的调试方法、服务器及可读存储介质 |
CN111818046A (zh) * | 2020-07-08 | 2020-10-23 | 北京百度网讯科技有限公司 | 用于交互信息的方法、装置、设备以及存储介质 |
CN111831499A (zh) * | 2020-07-21 | 2020-10-27 | 北京千丁互联科技有限公司 | 远程调试方法、装置、服务器、可读存储介质和系统 |
CN111953749A (zh) * | 2020-07-29 | 2020-11-17 | 新华三半导体技术有限公司 | 一种分布式设备的消息分发方法和装置 |
CN112235417A (zh) * | 2020-11-09 | 2021-01-15 | 北京百度网讯科技有限公司 | 调试指令的发送方法、装置 |
CN114090422A (zh) * | 2021-09-30 | 2022-02-25 | 北京奇艺世纪科技有限公司 | 远程调试方法、装置、电子设备及存储介质 |
CN114157701A (zh) * | 2021-11-19 | 2022-03-08 | 北京百度网讯科技有限公司 | 一种任务测试方法、装置、设备以及存储介质 |
CN114363225A (zh) * | 2021-12-22 | 2022-04-15 | 深圳优美创新科技有限公司 | 基于mtqq协议的设备调试方式、系统及存储介质 |
CN114490383A (zh) * | 2022-01-25 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 远程调试系统、远程调试方法、计算设备和可读介质 |
CN114691486A (zh) * | 2020-12-30 | 2022-07-01 | 腾讯科技(深圳)有限公司 | 程序调试方法、装置及计算机设备 |
CN114827268A (zh) * | 2022-05-12 | 2022-07-29 | 合肥宏晶半导体科技有限公司 | 远程调试方法和设备 |
CN115022297A (zh) * | 2022-05-31 | 2022-09-06 | 重庆长安汽车股份有限公司 | 车端控制器的远程调试方法、装置、系统和车辆 |
-
2022
- 2022-10-12 CN CN202211245389.7A patent/CN115314541A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120151452A1 (en) * | 2010-12-14 | 2012-06-14 | Microsoft Corporation | Remote debugging of server side code without blocking or high-level privileges |
CN103577209A (zh) * | 2012-08-06 | 2014-02-12 | 浙江大华技术股份有限公司 | 一种基于嵌入式设备的应用程序远程在线调试方法及装置 |
CN108270819A (zh) * | 2016-12-30 | 2018-07-10 | 上海擎感智能科技有限公司 | 移动设备的远程调试方法、服务器及系统 |
CN109257211A (zh) * | 2018-09-07 | 2019-01-22 | 广州微算互联信息技术有限公司 | 云手机批量初始化方法与系统 |
CN109408310A (zh) * | 2018-10-19 | 2019-03-01 | 网易(杭州)网络有限公司 | 服务器的调试方法、服务器及可读存储介质 |
CN111818046A (zh) * | 2020-07-08 | 2020-10-23 | 北京百度网讯科技有限公司 | 用于交互信息的方法、装置、设备以及存储介质 |
CN111831499A (zh) * | 2020-07-21 | 2020-10-27 | 北京千丁互联科技有限公司 | 远程调试方法、装置、服务器、可读存储介质和系统 |
CN111953749A (zh) * | 2020-07-29 | 2020-11-17 | 新华三半导体技术有限公司 | 一种分布式设备的消息分发方法和装置 |
CN112235417A (zh) * | 2020-11-09 | 2021-01-15 | 北京百度网讯科技有限公司 | 调试指令的发送方法、装置 |
CN114691486A (zh) * | 2020-12-30 | 2022-07-01 | 腾讯科技(深圳)有限公司 | 程序调试方法、装置及计算机设备 |
CN114090422A (zh) * | 2021-09-30 | 2022-02-25 | 北京奇艺世纪科技有限公司 | 远程调试方法、装置、电子设备及存储介质 |
CN114157701A (zh) * | 2021-11-19 | 2022-03-08 | 北京百度网讯科技有限公司 | 一种任务测试方法、装置、设备以及存储介质 |
CN114363225A (zh) * | 2021-12-22 | 2022-04-15 | 深圳优美创新科技有限公司 | 基于mtqq协议的设备调试方式、系统及存储介质 |
CN114490383A (zh) * | 2022-01-25 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 远程调试系统、远程调试方法、计算设备和可读介质 |
CN114827268A (zh) * | 2022-05-12 | 2022-07-29 | 合肥宏晶半导体科技有限公司 | 远程调试方法和设备 |
CN115022297A (zh) * | 2022-05-31 | 2022-09-06 | 重庆长安汽车股份有限公司 | 车端控制器的远程调试方法、装置、系统和车辆 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101960822B (zh) | Sip-http应用相关器 | |
US11340859B2 (en) | Synchronous display method, storage medium and electronic device | |
CN111159614B (zh) | 网页资源获取方法以及装置 | |
CN109873728B (zh) | 一种终端测试方法、装置和存储介质 | |
CN112399130B (zh) | 云视频会议信息的处理方法、装置、存储介质和通信设备 | |
CN111159019B (zh) | 一种应用程序的测试方法、测试控制终端以及测试终端 | |
CN111787399A (zh) | 一种视频播放方法、装置和系统 | |
CN104967644A (zh) | 消息推送方法、装置及系统 | |
CN105635201A (zh) | 一种基于推送消息的应用程序启动方法及系统 | |
CN112565439A (zh) | 物联网通信方法与系统 | |
CN112954717A (zh) | 基于h5页面的家电配网方法和装置 | |
CN107295003B (zh) | 一种数据传输方法、装置及系统 | |
CN106933623B (zh) | 免安装应用的运行方法、装置及系统 | |
CN110442506B (zh) | 一种日志获取方法、装置、业务服务器、系统及存储介质 | |
CN111405059A (zh) | 云端设备的数据传输方法、电子设备及物联网系统 | |
JP5610654B2 (ja) | 端末管理パッケージを提供する装置及び前記端末管理パッケージを受信する方法 | |
CN106294119B (zh) | 测试调度系统、方法及终端设备 | |
CN105072148B (zh) | 与终端建立连接的方法及装置 | |
CN108600378B (zh) | 一种文件下载方法、装置、终端和存储介质 | |
EP2445171A1 (en) | File transfer protocol client and implementing method thereof | |
CN115314541A (zh) | 远程调试方法、通信系统、电子设备和存储介质 | |
CN112565458B (zh) | 平台远程控制方法和装置、存储介质及电子设备 | |
CN113342447B (zh) | 基于Flutter的页面生成方法、装置、设备及存储介质 | |
CN114281563A (zh) | 应用程序重构方法及装置 | |
CN112433938A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221108 |
|
RJ01 | Rejection of invention patent application after publication |