一种基于Websocket协议的嵌入式设备远程实验方法技术

技术编号:27616934 阅读:14 留言:0更新日期:2021-03-10 10:49
一种基于Websocket协议的嵌入式设备远程实验方法,包括:1)首先搭建Websocket服务器和Web服务器;2)运行嵌入式设备代码进而和Websocket服务器建立连接等待用户绑定;3)用户登录与Websocket服务器建立通信,接着绑定在线的设备;4)嵌入式设备等待用户发送命令,并解析命令;5)执行下载命令进行文件下载;6)用户发送操作命令嵌入式设备执行操作命令并开始运行嵌入式实验代码;7)设备获取嵌入式设备执行用户命令后产生的反馈信息并将数据反馈到浏览器。本发明专利技术可以实现浏览器和Websocket服务器之间双向通信,解决了传统B/S通信方式一次访问一次响应的通信带来的弊端,本发明专利技术还具有较少的控制开销,连接创建后客户端和服务器之间交换数据时用于协议控制的数据包头部较小。据包头部较小。据包头部较小。

【技术实现步骤摘要】
一种基于Websocket协议的嵌入式设备远程实验方法


[0001]本专利技术涉及互联网和通讯领域,尤其涉及Websocket协议和HTTP协议,采用网络传输的方式,实现嵌入式设备可以接收远端用户发送的消息,以及对远端用户上传的文件进行下载,实现用户和嵌入式设备进行远程数据交互。具体地说就是一种基于Websocket协议的嵌入式设备远程实验方法。

技术介绍

[0002]随着时代发展,互联网成为了一种便捷的通信方式,我们可以通过网络进行远程的数据交互。嵌入式设备也在大众的生活中越发的普及,通过Websocket协议、HTTP协议实现嵌入式设备接入网络从而实现远程控制嵌入式设备进而远程进行嵌入式实验。
[0003]WebSocket,即Web浏览器与Web服务器之间全双工通信标准,其中,WebSocket协议由IETF定位标准,WebSocketAPI由W3C定位标准。一旦Web服务器与客户端之间建立起WebSocket协议的通信连接,之后所有的通信都依靠这个专用协议进行。通信过程中互相发送JSON、XML、HTML或图片等任意格式的数据。由于是建立在HTTP基础上的协议,因此连接的发起发仍是客户端,而一旦确立WebSocket通信连接,不论服务器还是客户端,任意一方都可直接向对方发送报文。
[0004]HTTP全称为Hyper Text Transfer Protocol,被译为超文本传输协议,是互联网上应用最为广泛的一种网络协议。HTTP协议是在Web上进行数据交换的基础,是一种“客户端
‑<br/>服务器端”协议。也就是说,请求通常是由像浏览器这样的接受方发起的。一个完整的Web文档通常是由不同的子文档拼接而成的,像文本、布局描述、图片、视频、脚本等等。设计HTTP最初的目的是为了提供一

种发布和接收HTML页面的方法。

技术实现思路

[0005]为解决疫情期间校园的实验室现场做实验人员过于密集、以及嵌入式设备昂贵学生难以购买的问题,本专利技术提供了一种基于Websocket协议的嵌入式设备远程实验方法,实现远程操作嵌入式设备进行嵌入式实验。
[0006]本专利技术主要涉及将嵌入式设备接入网络,使得嵌入式设备可以和Websocket服务器建立连接,并且可以实现嵌入式设备和Web服务器之间的建立连接。本专利技术并不涉及Websocket服务器和Web服务器的搭建过程,以及网页前端界面的设计。但是为了说明本专利技术的完整流程,在说明时会对Websocket服务器和Web服务器以及前端界面功能稍有提及但不作为重点展开。
[0007]一种基于Websocket协议的嵌入式设备远程实验方法,包括以下步骤:
[0008]1)首先搭建Websocket服务器和Web服务器,具体包括:
[0009]Websocket服务器作为浏览器用户和嵌入式设备通信的桥梁,使用户可以通过Websocket服务器和嵌入式设备建立连接。Web服务器用于保存用户注册信息、设备的注册信息以及保存浏览器上传的实验代码文件,并且提供下载接口使得嵌入式设备可以获取浏
览器上的实验代码文件。
[0010]2)运行嵌入式设备代码进而和Websocket服务器建立连接等待用户绑定,具体包括:
[0011]设备在本地两个进程代码,分别为Websocket进程和Dev进程,Websocket进程用于与Websocket服务器建立通信,使设备可以和Websocket服务器建立连接,从而被用户绑定。Dev进程用于对Websocket消息内容解析和处理,两个进程之间采用了消息队列的方式实现进程间通信。嵌入式设备使用两个进程实现Websocket消息的收发和解析处理可以降低代码的实现和调试难度,通过模块化分工可以快速高效的进行代码的修改差错。
[0012]进程间通信主要实现的功能是将Websocket进程收到的来自Websocket服务器发来的用户消息的PayloadData(数据载荷)转发给Dev进程,Dev进程负责发起设备登录消息和解析消息体,解析得到具体的命令后执行对应命令。通过运行这两个进程完成设备登录到Websocket服务器。嵌入式设备端通过定时发送心跳消息ping到Websocket服务器,Websocket服务器收到消息后返回pong消息告知设备端连接正常,使嵌入式设备端和Websocket服务器可以及时知道彼此之间的连接是否中断。定时发送心跳消息可以保证设备保持在线状态,此时用户可以通过Websocket服务器绑定在线的设备。
[0013]3)用户登录与Websocket服务器建立通信,接着绑定在线的设备,具体包括:
[0014]用户通过浏览器进行登录操作,通过向Web服务器发送登录消息验证用户是否存在,如果存在则登录成功,反之失败。接着通过Web服务器实现将用户和嵌入式设备绑定的操作,并将绑定信息保存在数据库当中。接着Websocket服务器通过数据库中的绑定信息实现用户和该用户绑定嵌入式设备之间消息的一对一转发功能。
[0015]4)嵌入式设备等待用户发送命令,并解析命令,具体包括:
[0016]用户通过浏览器发送命令,通过Websocket服务器转发到用户绑定的嵌入式设备,设备通过Websocket进程接收这个消息,转发消息的内容到Dev进程进行解析处理,Dev进程通过判断Xml格式的PayloadData内容得知执行的命令种类,命令种类包括下载命令和操作命令,操作命令是Linux系统常用命令,下载命令是和Websocket服务器。
[0017]5)执行下载命令进行文件下载,具体包括:
[0018]首先执行下载命令将将要执行的嵌入式实验的代码下载到嵌入式设备上。用户在浏览器通过点击按钮的方式发送下载命令将已经上传的实验相关文件的文件名作为内容以Xml格式加入到Websocket消息的PayloadData中。嵌入式设备端Websocket进程收到Websocket服务器转发的消息后将Xml格式的消息内容写入到消息队列中,Dev进程通过读取消息队列获取Xml格式的PayloadData,并对该消息进行解析,通过Xml的根节点名得知为下载命令,通过根节点下的子节点获取需要下载的实验文件的名字,接着在本地先创建一个同名文件,通过使用libcurl库提供的GET方法访问Web服务器提供的文件下载接口,将Web服务器反馈的数据保存到嵌入式设备本地的同名文件当中实现文件下载的功能。
[0019]6)用户发送操作命令嵌入式设备执行操作命令并开始运行嵌入式实验代码,具体包括:
[0020]用户通过浏览器的发送框写入待发送的操作命令,浏览器将发送框的内容封装成Xml格式发送到Websocket服务器,,嵌入式设备端Websocket进程收到来自Websocket服务器转发的消息并将该消息的PayloadData内容传入消息队列,Dev进程解析Xml格式的
PayloadData,通过解析出的根节点名得知为操作命令后,通过解析子节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Websocket协议的嵌入式设备远程实验方法,包括以下步骤:1)搭建Websocket服务器和Web服务器,具体包括:Websocket服务器作为浏览器用户和嵌入式设备通信的桥梁,使用户可以通过Websocket服务器和嵌入式设备建立连接;Web服务器用于保存用户注册信息、设备的注册信息以及保存浏览器上传的实验代码文件,并且提供下载接口使得嵌入式设备可以获取浏览器上的实验代码文件;2)运行嵌入式设备代码进而和Websocket服务器建立连接等待用户绑定,具体包括:设备在本地两个进程代码,分别为Websocket进程和Dev进程,Websocket进程用于与Websocket服务器建立通信,使设备可以和Websocket服务器建立连接,从而被用户绑定;Dev进程用于对Websocket消息内容解析和处理,两个进程之间采用了消息队列的方式实现进程间通信;嵌入式设备使用两个进程实现Websocket消息的收发和解析处理可以降低代码的实现和调试难度,通过模块化分工可以快速高效的进行代码的修改差错;进程间通信主要实现的功能是将Websocket进程收到的来自Websocket服务器发来的用户消息的PayloadData(数据载荷)转发给Dev进程,Dev进程负责发起设备登录消息和解析消息体,解析得到具体的命令后执行对应命令;通过运行这两个进程完成设备登录到Websocket服务器;嵌入式设备端通过定时发送心跳消息ping到Websocket服务器,Websocket服务器收到消息后返回pong消息告知设备端连接正常,使嵌入式设备端和Websocket服务器可以及时知道彼此之间的连接是否中断;定时发送心跳消息可以保证设备保持在线状态,此时用户可以通过Websocket服务器绑定在线的设备;3)用户登录与Websocket服务器建立通信,接着绑定在线的设备,具体包括:用户通过浏览器进行登录操作,通过向Web服务器发送登录消息验证用户是否存在,如果存在则登录成功,反之失败;接着通过Web服务器实现将用户和嵌入式设备绑定的操作,并将绑定信息保存在数据库当中;接着Websocket服务器通过数据库中的绑定信息实现用户和该用户绑定嵌入式设备之间消息的一对一转发功能;4)嵌入式设备等待用户发送命令,并解析命令,具体包括:用户通过浏览器发送命令,通过Websocket...

【专利技术属性】
技术研发人员:林梦嫚包秀钦孟利民应颂翔彭宏
申请(专利权)人:杭州梦视网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1