一种基于浏览器实时获取主机设备信息的方法与流程

文档序号:29702366发布日期:2022-04-16 14:51阅读:1104来源:国知局
一种基于浏览器实时获取主机设备信息的方法与流程

1.本发明涉及网络交互技术领域,具体涉及一种基于浏览器实时获取主机设备信息的方法。


背景技术:

2.在某些特定领域(例如运维管理),服务端要展示本机的设备信息(例如硬盘序列号、容量,mac地址,插入u盘的型号、容量等信息)。现有的获取主机设备信息主要有以下几种方式。java第三方包sigar.jar的相关接口获取。jni调用c或c++封装的库接口方式获取;jni是jdk的一部分,用于为java提供一个本地代码的接口,jni允许运行在虚拟机的java程序能够与其他语言(c/c++)编写的程序或类库进行相互间的调用;采用jni,可以使java程序调用c/c++类库获取到主机信息。但是java第三方包和jni技术在某些系统下没有访问设备的权限,导致设备信息获取不到。
3.c/s架构的http post方式获取;其核心是编写c++程序采用http传输协议定期发送post表单到java服务器;采用c/s架构,c++程序采用轮询的方式定时发送post表单到java服务器,无法保证数据的实时性。


技术实现要素:

4.为此,本发明提供一种基于浏览器实时获取主机设备信息的方法,以解决现有主机设备信息难以实时准确获得的问题。
5.为了实现上述目的,本发明提供如下技术方案:
6.本发明公开了一种基于浏览器实时获取主机设备信息的方法,所述方法为:
7.基于c/s架构,浏览器与客户端建立websocket连接;
8.连接建立成功后,浏览器通过websocket协议向客户端发送获取主机信息的查询消息,客户端接收到消息后返回当前主机的设备状态信息;
9.当主机设备信息或设备状态发生变化时,客户端主动发送信息给浏览器。。
10.进一步地,所述浏览器作为连接发起端,通过websocket协议使浏览器与客户端之间建立持久性连接,并进行双向数据传输。
11.进一步地,所述浏览器向客户端发送查询设备信息的请求,基于websocket协议能够保证浏览器不断向客户端发送相应请求。
12.进一步地,所述客户端接收浏览器发送的查询设备信息的请求后,获取客户端上本机设备信息。
13.进一步地,所述本机设备信息包括:硬盘序列号、容量,mac地址,插入u盘的型号、容量信息。
14.进一步地,所述客户端在获取本机设备信息后将本机设备信息主动发送至浏览器,浏览器能够对设备信息进行展示。
15.进一步地,所述浏览器关闭时,浏览器与客户端之间的websocket连接自动断开。
16.进一步地,所述客户端内本机设备信息发生变化时,客户端自动将变化情况通过websocket协议发送浏览器。
17.本发明具有如下优点:
18.本发明公开了一种基于浏览器实时获取主机设备信息的方法,比起传统的http post技术方案,本发明可以更好的节省服务器资源和带宽,并且能够进行更加实时地通讯;减小带宽开销:服务器和客户端在连接建立后,相比起http请求,交换数据时用于协议控制的数据包头部相对较小,一般只有2字节。增强实时性:服务器可以随时主动向客户端查询数据,相对于http post请求需要等待客户端发送数据服务端更新响应,延迟明显更少,在短时间内更有效率地传递数据。维持连接状态:在一些需要身份认证的场景下,http请求可能需要在每个请求都携带状态信息,服务器不记录每次的请求和响应信息,而websocket一次连接建立后就会保持住会话状态,这就使其成为一种有状态的协议,后续通信时就可以省略部分状态信息。
附图说明
19.为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
20.本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
21.图1为本发明实施例提供的一种基于浏览器实时获取主机设备信息的方法信息交互示意图;
具体实施方式
22.以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.实施例
24.本实施例公开了一种基于浏览器实时获取主机设备信息的方法,所述方法为:
25.基于c/s架构,浏览器与客户端建立websocket连接;
26.连接建立成功后,浏览器通过websocket协议向客户端发送获取主机信息的查询消息,客户端接收到消息后返回当前主机的设备状态信息;
27.当主机设备信息或设备状态发生变化时,客户端主动发送信息给浏览器。
28.websocket是一种在单个tcp连接上进行全双工通信的协议。websocket通信协议于2011年被ietf定为标准rfc6455,并由rfc7936补充规范。websocketapi也被w3c定为标准。
29.websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocketapi中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
30.websocket协议本质上是一个基于tcp的协议。为了建立一个websocket连接,客户端浏览器首先要向服务器发起一个http请求,这个请求和通常的http请求不同,包含了一些附加头信息。
31.浏览器作为连接发起端,在本实施例中浏览器也可以为java服务器,通过websocket协议使浏览器与客户端之间建立持久性连接,并进行双向数据传输,浏览器向客户端发送查询设备信息的请求,基于websocket协议能够保证浏览器不断向客户端发送相应请求。
32.客户端接收浏览器发送的查询设备信息的请求后,获取客户端上本机设备信息,本实施例中客户端采用c++客户端,本机设备信息包括:硬盘序列号、容量,mac地址,插入u盘的型号、容量信息。
33.客户端在获取本机设备信息后将本机设备信息主动发送至浏览器,浏览器能够对设备信息进行展示。浏览器关闭时,浏览器与客户端之间的websocket连接自动断开。客户端内本机设备信息发生变化时,客户端自动将变化情况通过websocket协议发送浏览器。
34.本实施例公开的一种基于浏览器实时获取主机设备信息的方法,比起传统的http post技术方案,本发明可以更好的节省服务器资源和带宽,并且能够进行更加实时地通讯;减小带宽开销:服务器和客户端在连接建立后,相比起http请求,交换数据时用于协议控制的数据包头部相对较小,一般只有2字节。增强实时性:服务器可以随时主动向客户端查询数据,相对于http post请求需要等待客户端发送数据服务端更新响应,延迟明显更少,在短时间内更有效率地传递数据。维持连接状态:在一些需要身份认证的场景下,http请求可能需要在每个请求都携带状态信息,服务器不记录每次的请求和响应信息,而websocket一次连接建立后就会保持住会话状态,这就使其成为一种有状态的协议,后续通信时就可以省略部分状态信息。
35.虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1