概述【关于网页实现串口或者TCP通讯的说明】最近经常有网页联系我,反馈为什么他按我说的方法,写的HTML代码,无法在chrome网页中运行 。这里我统一做一个解释,我发现好多网页并没有理解我的意思 。其实,要实现在HTML中进行串口或者TCP通讯,有两种方案 。
方案一:专用浏览器具体的实现方法就是,一般会使用Cef来开发一个浏览器,然后将串口和TCP的通讯功能,扩展出来,以实现在HTML中 , 可以调用扩展脚本,实现通讯 。相当于浏览器的壳代理了一下 。这种方案呢,你写的HTML通讯代码 , 就只能使用专用的浏览器,不支持在其他浏览器中使用 。这个在我博客中能够找到案例 。这种方案的好处呢,就是你发给客户一个专用的浏览器 , 来展示你的平台系统 。客户不需要安装其他的软件 。
方案二:本地CS客户端代理具体的实现方法就是,你写一个CS的代理程序实现通讯功能 , 同时开放出来一个websocket通讯API,网页呢,通过websocket与代理程序交互 , 实现通讯功能 。因为HTML使用的是通用的websocket来实现串口通讯,所以主流浏览器都会支持 。这种方案呢,你写的HTML通讯代码 , 可以在任何浏览器上运行,任何通用浏览器都可以使用,但是必须在客户的电脑上安装一个CS客户端代理一下 。这种方案的好处呢 , 是你需要在客户电脑上安装一个代理程序,然后客户就不限制浏览器了 , 用啥浏览器都可以,不改变用户的使用习惯 。
总结由于浏览器考虑到安全,HTML在浏览器上访问时 , 是不允许访问本地资源的 。本地资源包含本地的磁盘,串口设备等等 。所以一般的HTML是无法实现通讯功能的 。很多同学,误以为有什么捷径可以实现,其实是没有的 。我的这两种方案只是一种拆中的方案,可以变相的实现而已,体验上都会有折扣 。而且通常情况下windows平台用户会多一些,一般不考虑多平台 。在网页中实现通讯功能的 , 多数也还是用CS来实现,毕竟相对稳定一些 。如果场景比较少 , 可以采用上面的方案 。技术没有对与错,在什么情况下最合适就用什么技术,这就是对的 。
推荐阅读
- .net core Blazor+自定义日志提供器实现实时日志查看器
- 九 前后端分离项目:实现"添加"功能(后端接口)
- 小样本利器4. 正则化+数据增强 Mixup Family代码实现
- node.js:《接口实现文件的上传和下载》
- 之五 2流高手速成记:Springboot整合Shiro实现安全管理
- 二 Three光线检测-实现摄像机向鼠标点击位置滑动动画
- Dapr实现.Net Grpc服务之间的发布和订阅,并采用WebApi类似的事件订阅方式
- React动画实现方案之 Framer Motion,让你的页面“自己”动起来
- AR人体姿态识别,实现无边界的人机交互
- 17 基于SqlSugar的开发框架循序渐进介绍-- 基于CSRedis实现缓存的处理