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

消息传输方法、电子设备及存储介质与流程

2022-12-19 23:19:05 来源:中国专利 TAG:


1.本发明实施例涉及软件开发技术领域,尤其涉及一种消息传输方法、电子设备及存储介质。


背景技术:

2.云墙配置命令是由控制器管理的,因为云墙的实时状态,打印的各种信息并不能及时发送至控制器,甚至很多命令是不会发给控制器的,导致控制器调试云墙并不方便。
3.比较简便的方式是使用控制台(console)来控制和调试云墙,但当云墙启动时,控制台不一定会同步开启,即便是开启了,连接也可能会超时丢失。
4.因此,需要一种可以随时连接云墙并获取云墙信息的方法,用以保证云墙和控制台之间可以实时互通,进而方便控制器能够对云墙进行调试和管理。


技术实现要素:

5.本技术提供了一种消息传输方法、电子设备及存储介质,以解决现有技术中上述部分或全部的技术问题。
6.第一方面,本技术提供了一种消息传输方法,该方法由虚拟终端设备的服务器端虚拟端口执行,该方法包括:
7.当确定客户端与服务器端通过第一消息传输通道建立通信连接后,等待客户端通过第一消息传输通道传输的操作指令;
8.对操作指令进行解析,获取解析后的操作指令;
9.当执行解析后的操作指令后,生成操作结果时,切换第一消息传输通道至第二消息传输通道;
10.将操作结果通过第二消息传输通道传输至客户端。
11.第二方面,本技术提供了一种消息传输方法,该方法由虚拟终端设备的客户端虚拟端口执行,该方法步骤包括:
12.当检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,通过与服务器端建立的第一消息传输通道发送第一对象写入的操作指令;
13.或者,当在第二消息传输通道监听到服务器端反馈的操作结果后,读取操作结果并显示,其中第一消息传输通道和第二消息传输通道构成消息传输通道对。
14.第三方面,提供了一种电子设备,电子设备中承载有虚拟终端设备,虚拟终端设备包括路由器或者交换机的远程登陆的虚拟端口,虚拟端口包括有服务器端和客户端,电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
15.存储器,用于存放计算机程序;
16.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的消息传输方法的步骤;
17.或者,实现第二方面任一项实施例的消息传输方法的步骤。
18.第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项实施例的消息传输方法的步骤;
19.或者,实现如第二方面任一项实施例的消息传输方法的步骤。
20.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
21.本技术实施例提供的该方法,客户端与服务器端通过消息传输通道传递消息,消息包括操作指令,以及根据操作指令生成的操作结果。实现了通过虚拟终端设备的vty随时获取信息。其中,虚拟终端vty中提前配置好与控制台相同的命令解析环境,用以在该环境中对操作命令进行解析,用以根据解析后的操作命令完成后续的配置、调试管理云墙,以及接收云墙状态或打印信息等,提高解决问题的效率,进而使云墙更加易用可靠。
附图说明
22.图1为本发明实施例提供的一种消息传输方法流程示意图;
23.图2为本发明实施例提供的另一种消息传输方法流程示意图;
24.图3为本发明提供的实现单用户访问云墙的方法流程示意图;
25.图4本发明提供的服务器端线程、客户端线程,以及用户输入输出等整体流程框框;
26.图5为本发明实施例提供的一种消息传输装置结构示意图;
27.图6为本发明实施例提供的另一种消息传输装置结构示意图;
28.图7为本发明实施例提供一种电子设备结构示意图。
具体实施方式
29.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
31.针对背景技术中所提及的技术问题,本技术实施例提供了一种消息传输方法,具体参见图1所示,图1为本发明实施例提供的一种消息传输方法流程示意图,该方法由虚拟终端设备的服务器端虚拟端口执行。在介绍该方法步骤之前,首先解释说明需要执行的一些准备工作。
32.具体而言,需要在虚拟终端设备的虚拟端口中配置与控制台(console)相同的命令解析环境,用以配置调试管理云墙,接收云墙状态或打印信息等等。其中,虚拟端口为路由器或者交换机的远程登录的虚拟端口vty,vty包括有客户端和服务器端。客户端配置有独立于云墙的可执行文件。运行它就会连接云墙,服务器端是云墙的一部分,当云墙运行时,服务器端会打开通道,等待客户端连接。这里说的通道就是第一消息传输通道。
33.因此,在执行下述步骤之前,在服务端还需要执行如下操作:
34.创建一个线程thread,用以执行如下操作:
35.创建1个消息传输通道对,在一个可选的例子中,消息传输通道对可以为先入先出队列fifo(命名管道)对,包括第一消息传输通道,以及第二消息传输通道。在一个具体的例子中,第一消息传输通道为客户端到服务器端(c2s),第二消息传输通道为服务器端到客户端(s2c)。创建之后,打开fifo对,在c2s中等待客户端连接。
36.创建的线程还用于执行如下方法步骤:
37.步骤110,当确定客户端与服务器端通过第一消息传输通道建立通信连接后,等待客户端通过第一消息传输通道传输的操作指令。
38.具体的,操作指令为用户通过客户端的虚拟端口访问云墙后写入的操作指令,该操作指令将通过c2s传输到服务器端。
39.步骤120,对操作指令进行解析,获取解析后的操作指令。
40.在一个具体的例子中,对于操作指令的解析,可以逐个字符读取客户端命令,并进行解析。
41.当然,如果操作指令中存在预设字符(特殊字符),例如

tab
’‘
?’时,则对特殊字符执行响应操作。具体的响应操作包括但不限于如下操作,例如提示操作、联想操作,或自动补全操作等。
42.在一个具体的例子中,例如操作指令为secpolicy add xx、secpolicy delete xxx、secpolicy ad-mod xxx,执行到secpolicy再空格后,输入?,会执行提示操作,例如提示add delete ad-mod三个信息,供后续选择关键字;
43.继续执行secpolicy ad敲tab键,会执行联想操作:联想出add和ad-mod供选择具体关键字;
44.继续执行secpolicy ad-,敲tab键,因为此时关键字只有ad-mod,所以会执行自动不全操作,例如自动补全关键字ad-mod。
45.步骤130,当执行解析后的操作指令后,生成操作结果时,切换第一消息传输通道至第二消息传输通道。
46.具体的,如果执行解析后的操作指令,生成了相应的操作结果。那么还需要将操作结果反馈至客户端。因此,需要切换第一消息传输通道至第二消息传输通道。
47.进一步可选的,在客户端与服务器端的通信连接建立后,可以将c2s与s2c替换为0(stdin)与1(stdout)。并在后续执行过程中,通过切换0(stdin)与1(stdout),来完成第一消息传输通道与第二消息传输通道之间的切换过程。之所以如此操作,可以与现有控制台命令复用代码,不需要任何修改。免去工作人员的很多麻烦,操作更加方便、快捷。
48.还需要说明的是,在本实施例中,客户端无需解析任何命令,所有命令解析都在服务器端,同样不需要添加代码,因此也不会增加工作人员的额外工作。
49.步骤140,将操作结果通过第二消息传输通道传输至客户端。
50.具体的,将操作结果通过第二消息传输通道传输至客户端后,通过客户端对用户进行展示。其中,将操作结果通过第二消息传输通道传输至客户端时,将才采用分批传输的方式,用以提高工作效率。例如,每次传输1024字节。
51.在一个可选的例子中,服务器端发给客户端的信息使用vt100标准,使用户通过vty可以获取与控制台相同的结果。
52.本发明实施例提供的消息传输方法,客户端与服务器端通过消息传输通道传递消
息,消息包括操作指令,以及根据操作指令生成的操作结果。实现了通过虚拟终端设备的vty随时获取信息。其中,虚拟终端vty中提前配置好与控制台相同的命令解析环境,用以在该环境中对操作命令进行解析,用以根据解析后的操作命令完成后续的配置、调试管理云墙,以及接收云墙状态或打印信息等,提高解决问题的效率,进而使云墙更加易用可靠。
53.进一步可选的,在上述实施例的基础上,将将操作结果通过第二消息传输通道传输至客户端后,方法还包括:
54.若客户端需要被告知操作结果是否已经传输完毕,或者服务器端主动高坠客户端操作结果是否已经传输完毕,则还可以执行如下方法步骤:
55.将当前的消息传输通道对中的所有消息传输通道关闭。
56.通过关闭消息传输通道对中的所有消息传输通道,用以告知客户端操作结果已经传输完毕。
57.进一步可选的,如果需要再次建立与客户端之间的通信连接时,该方法还可以包括:
58.并在下一次建立通信连接时,重新打开消息传输通道对;
59.且,每次重新打开消息传输通道对时,按照预配置的消息传输通道命名规则,对消息传输通道对中的消息传输通道配置新的名称,用以与前一次打开消息传输通道对时的消息传输通道的名称进行区分。
60.在一个具体的例子中,新的c2s与旧的c2s有不同命名,分别为c2s_e与c2s_o,e代表even,o代表odd,以0为起始序号,每次递增1,即第一次打开为c2s_e(0),第二次打开为c2s_o(1),第三次为c2s_e(2),第四次为c2s_o(3),以此类推。
61.通过奇偶序号打开不同的c2s/s2c对,实现了服务器端到客户端消息的边界感知。
62.进一步可选的,当检测到客户端断开与服务器端之间的通信连接时,则重新初始化消息传输通道对中的消息传输通道的名称。
63.也即是,客户端断开连接后,服务器端将重置起始序号0,再次等待客户端连接。
64.在本技术的另一个实施例中,还提供了另一种消息传输方法,具体参见图2所示,图2为本发明实施例提供的一种消息传输方法流程示意图,该方法由虚拟终端设备的客户端虚拟端口执行,在介绍该方法步骤之前,首先说明在客户端执行的准备工作,包括:创建一个线程thread进行下面处理:
65.包括:创建2个thread,一个用于读入用户命令,并将命令通过c2s fifo发送给服务器端;另一个用于通过s2c fifo读入服务器端执行结果并将其显示。
66.具体的,参见如下方法步骤:
67.步骤210,当检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,通过与服务器端建立的第一消息传输通道发送第一对象写入的操作指令。
68.具体的,如上文所介绍的,客户端是一个独立于云墙的可执行文件,运行它就会去连接云墙。因此,当第一对象打开客户端虚拟端口后,就已经打开云墙,即可访问云墙。当第一对象写入操作指令后,客户端通过与服务器端建立的第一消息传输通道发送第一对象写入的操作指令。其中,客户端将会逐个字符读取用户命令,并将命令通过c2s发送给服务器端,可用于实现提示、联想或补全功能。
69.或者,步骤220,当在第二消息传输通道监听到服务器端反馈的操作结果后,读取
操作结果并显示。
70.其中第一消息传输通道和第二消息传输通道构成消息传输通道对。
71.具体的,客户端在读取操作指令后,将会采用分批读取的方式,例如每次读取1024个字节,并将结果显示(stdout),采用分批读取的方式是为了提供工作效率。
72.本发明实施例提供的消息传输方法,实时监听是否有对象通过虚拟终端设备的客户端的虚拟端口访问云墙,如果检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,通过与服务器端建立的第一消息传输通道发送第一对象写入的操作指令。或者,当在第二消息传输通道监听到服务器端反馈的操作结果后,读取操作结果并显示。通过该方式,可以轻易的实现用户通过虚拟终端设备的虚拟端口访问云墙,方便操作。而客户端与服务器端通过消息传输通道对建立通信链接,提供了一种简便、高效,可用于传输大量数据的传输通道。
73.在上述实施例的基础上,进一步可选的,当检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,方法还包括如下方法步骤,具体参见图3所示。
74.步骤310,获取与第一对象对应的第一标识文件。
75.步骤320,将第一标识文件存储于预设位置。
76.步骤330,当再次检测到第二对象通过虚拟终端设备的虚拟端口访问云墙后,获取与第二对象对应的第二标识文件。
77.步骤340,控制第一对象退出访问,允许第二对象访问云墙,并将第二标识文件存储于预设位置。
78.具体的,为了简化实现以及多用户并发访问的问题,该vty仅允许单用户登录,并使用pid文件的方式实现。即当用户1打开vty访问云墙,此时会将vty的pid写入特定的文件,当用户2尝试打开vty时,检测到另一个进程pid正在访问,会将用户1的进行强行退出,并在用户1终端给出提示,同时将用户2进程pid写入pid文件,最后开始访问云墙。
79.对于云墙管理一般通过控制器进行,vty的目的是便于调试,使用者多为开发人员,因此设计为单用户模式,简化了实现过程。
80.进一步可选的,如上所介绍的,因为客户端不对用户输入命令进行任何处理,只是一个中转作用,因此使用ctrl c作为退出vty的方法,设置相应的信号处理函数即可,具体实现过程为现有技术,这里不再赘述。
81.进一步可选的,该方法还包括:
82.设置termios属性,~(icanon|echo),前者使用户输入为非行模式,后者去除了回显,即用户输入只有当服务器端处理之后才进行回显。
83.进一步可选的,与服务器端相对应的,在客户端一侧,执行过程概括如下:
84.首先将根据起始序号(初始值为0)打开fifo对,与服务器端建立连接,等待用户输入(stdin)。逐个字符读取用户命令,并将命令通过c2s发送给服务器端;等待服务器端回应;读取s2c服务器端回应,每次读取1024个字节,并将结果显示(stdout)。继续等待用户的输入,重复执行上述过程。
85.当然,若客户端需要获取结果传输完毕信息,则在读取完毕之后read返回0,因为此时服务器端关闭了当前s2c并打开了新的s2c,此时客户端也会做同样动作,关闭当前s2c/c2s,更新起始序号,并打开新的s2c/c2s与服务器端建立连接,重复执行建立连接后的
后续操作。
86.当客户端断开连接时,恢复termios属性,并关闭当前c2s与s2c。
87.图4示意出了服务器端线程、客户端线程,以及用户输入输出等整体流程框框,因为上述过程均已在上文中做了详细的描述,因此这里不再过多赘述。
88.以上,为本技术所提供的消息传输几个方法实施例,下文中则介绍说明本技术所提供的消息传输其他实施例,具体参见如下。
89.图5为本发明实施例提供的一种消息传输装置结构示意图,该装置包括:通信连接模块501、确定模块502、处理模块503、执行模块504、通道切换模块505,以及传输模块506。
90.通信连接模块501,用于通过第一消息传输通道建立客户端与服务器端通信连接;
91.确定模块502,用于当确定客户端与服务器端通过第一消息传输通道建立通信连接后,等待客户端通过第一消息传输通道传输的操作指令;
92.处理模块503,用于对操作指令进行解析,获取解析后的操作指令;
93.执行模块504,用于执行解析后的操作指令;
94.通道切换模块505,用于当执行解析后的操作指令后,生成操作结果时,切换第一消息传输通道至第二消息传输通道;
95.传输模块506,用于将操作结果通过第二消息传输通道传输至客户端。
96.可选的,处理模块503,具体用于对预设字符进行响应操作,响应操作包括但不限于,对预设字符进行提示操作、联想操作,或自动补全操作。
97.可选的,该装置还包括:构建模块507;
98.构建模块507,用于构建消息传输通道对,其中,消息传输通道对包括第一消息传输通道和第二消息传输通道,消息传输通道对中的消息传输通道为先入先出队列。
99.可选的,处理模块503,还用于将操作结果通过第二消息传输通道传输至客户端后,将当前的消息传输通道对中的所有消息传输通道关闭,用以告知客户端操作结果已经传输完毕;
100.并在下一次建立通信连接时,重新打开消息传输通道对;
101.且,每次重新打开消息传输通道对时,按照预配置的消息传输通道命名规则,对消息传输通道对中的消息传输通道配置新的名称,用以与前一次打开消息传输通道对时的消息传输通道的名称进行区分。
102.可选的,处理模块503,还用于当检测到客户端断开与服务器端之间的通信连接时,则重新初始化消息传输通道对中的消息传输通道的名称。
103.本发明实施例提供的消息传输装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
104.本发明实施例提供的一种消息传输装置,客户端与服务器端通过消息传输通道传递消息,消息包括操作指令,以及根据操作指令生成的操作结果。实现了通过虚拟终端设备的vty随时获取信息。其中,虚拟终端vty中提前配置好与控制台相同的命令解析环境,用以在该环境中对操作命令进行解析,用以根据解析后的操作命令完成后续的配置、调试管理云墙,以及接收云墙状态或打印信息等,提高解决问题的效率,进而使云墙更加易用可靠。
105.图6为本发明实施例提供的一种消息传输装置,该装置包括:检测模块601、获取模块602、发送模块603、监听模块604、读取模块605,以及显示模块606。
106.检测模块601,用于检测是否存在对象通过虚拟终端设备的虚拟端口访问云墙;
107.获取模块602,用于获取第一对象写入的操作指令;
108.发送模块603,用于当检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,通过与服务器端建立的第一消息传输通道发送第一对象写入的操作指令;
109.监听模块604,用于在第二消息传输通道监听服务器端反馈的操作结果;
110.读取模块605,用于当在第二消息传输通道监听到服务器端反馈的操作结果后,读取操作结果;
111.显示模块606,用于显示操作结果,其中第一消息传输通道和第二消息传输通道构成消息传输通道对。
112.可选的,该装置还包括:处理模块607;
113.获取模块602还用于获取与第一对象对应的第一标识文件;
114.处理模块607,用于将第一标识文件存储于预设位置;
115.获取模块602,还用于当检测模块601再次检测到第二对象通过虚拟终端设备的虚拟端口访问云墙后,获取与第二对象对应的第二标识文件;
116.处理模块607,还用于控制第一对象退出访问,允许第二对象访问云墙,并将第二标识文件存储于预设位置。
117.可选的,读取模块605,具体用于通过逐字读取的方式,读取操作指令,和/或操作结果。
118.本发明实施例提供的消息传输装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
119.本发明实施例提供的一种消息传输装置,实时监听是否有对象通过虚拟终端设备的客户端的虚拟端口访问云墙,如果检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,通过与服务器端建立的第一消息传输通道发送第一对象写入的操作指令。或者,当在第二消息传输通道监听到服务器端反馈的操作结果后,读取操作结果并显示。通过该方式,可以轻易的实现用户通过虚拟终端设备的虚拟端口访问云墙,方便操作。而客户端与服务器端通过消息传输通道对建立通信链接,提供了一种简便、高效,可用于传输大量数据的传输通道。
120.如图7所示,本技术实施例提供了一种电子设备,电子设备中承载有虚拟终端设备,虚拟终端设备包括路由器或者交换机的远程登陆的虚拟端口,虚拟端口包括有服务器端和客户端,电子设备包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信。
121.存储器113,用于存放计算机程序;
122.在本技术一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的消息传输方法,包括:
123.当确定客户端与服务器端通过第一消息传输通道建立通信连接后,等待客户端通过第一消息传输通道传输的操作指令;
124.对操作指令进行解析,获取解析后的操作指令;
125.当执行解析后的操作指令后,生成操作结果时,切换第一消息传输通道至第二消息传输通道;
126.将操作结果通过第二消息传输通道传输至客户端。
127.可选的,当操作指令中包括预设字符时,对操作指令进行解析,获取解析后的操作指令,包括:
128.对预设字符进行响应操作,响应操作包括但不限于,对预设字符进行提示操作、联想操作,或自动补全操作。
129.可选的,当确定客户端与服务器端通过第一消息传输通道建立通信连接后,等待客户端通过第一消息传输通道传输的操作指令之前,方法还包括:
130.构建消息传输通道对,其中,消息传输通道对包括第一消息传输通道和第二消息传输通道,消息传输通道对中的消息传输通道为先入先出队列。
131.可选的,将操作结果通过第二消息传输通道传输至客户端后,方法还包括:
132.将当前的消息传输通道对中的所有消息传输通道关闭,用以告知客户端操作结果已经传输完毕;
133.并在下一次建立通信连接时,重新打开消息传输通道对;
134.且,每次重新打开消息传输通道对时,按照预配置的消息传输通道命名规则,对消息传输通道对中的消息传输通道配置新的名称,用以与前一次打开消息传输通道对时的消息传输通道的名称进行区分。
135.可选的,当检测到客户端断开与服务器端之间的通信连接时,则重新初始化消息传输通道对中的消息传输通道的名称。
136.或者,包括:当检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,通过与服务器端建立的第一消息传输通道发送第一对象写入的操作指令;
137.或者,当在第二消息传输通道监听到服务器端反馈的操作结果后,读取操作结果并显示,其中第一消息传输通道和第二消息传输通道构成消息传输通道对。
138.可选的,当检测到第一对象通过虚拟终端设备的虚拟端口访问云墙后,方法还包括:
139.获取与第一对象对应的第一标识文件;
140.将第一标识文件存储于预设位置;
141.当再次检测到第二对象通过虚拟终端设备的虚拟端口访问云墙后,获取与第二对象对应的第二标识文件;
142.控制第一对象退出访问,允许第二对象访问云墙,并将第二标识文件存储于预设位置。
143.可选的,客户端通过逐字读取的方式,读取操作指令,和/或操作结果。
144.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的消息传输方法的步骤。
145.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除
在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
146.以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献