关于网页实现串口或者TCP通讯的说明
概述
最近经常有网页联系我,反馈为什么他按我说的方法,写的HTML代码,无法在chrome网页中运行。这里我统一做一个解释,我发现好多网页并没有理解我的意思。
其实,要实现在HTML中进行串口或者TCP通讯,有两种方案。
方案一:专用浏览器
具体的实现方法就是,一般会使用Cef来开发一个浏览器,然后将串口和TCP的通讯功能,扩展出来,以实现在HTML中,可以调用扩展脚本,实现通讯。相当于浏览器的壳代理了一下。
这种方案呢,你写的HTML通讯代码,就只能使用专用的浏览器,不支持在其他浏览器中使用。这个在我博客中能够找到案例。
这种方案的好处呢,就是你发给客户一个专用的浏览器,来展示你的平台系统。客户不需要安装其他的软件。
方案二:本地CS客户端代理
具体的实现方法就是,你写一个CS的代理程序实现通讯功能,同时开放出来一个websocket通讯API,网页呢,通过websocket与代理程序交互,实现通讯功能。因为HTML使用的是通用的websocket来实现串口通讯,所以主流浏览器都会支持。
这种方案呢,你写的HTML通讯代码,可以在任何浏览器上运行,任何通用浏览器都可以使用,但是必须在客户的电脑上安装一个CS客户端代理一下。
这种方案的好处呢,是你需要在客户电脑上安装一个代理程序,然后客户就不限制浏览器了,用啥浏览器都可以,不改变用户的使用习惯。
总结
由于浏览器考虑到安全,HTML在浏览器上访问时,是不允许访问本地资源的。本地资源包含本地的磁盘,串口设备等等。所以一般的HTML是无法实现通讯功能的。
很多同学,误以为有什么捷径可以实现,其实是没有的。我的这两种方案只是一种拆中的方案,可以变相的实现而已,体验上都会有折扣。
而且通常情况下windows平台用户会多一些,一般不考虑多平台。
在网页中实现通讯功能的,多数也还是用CS来实现,毕竟相对稳定一些。
如果场景比较少,可以采用上面的方案。
技术没有对与错,在什么情况下最合适就用什么技术,这就是对的。
关于网页实现串口或者TCP通讯的说明的更多相关文章
- 用html自己开发自己的串口TCP通讯调试软件
今天给大家介绍一个通讯工具,可以自己写html页面,自己写Js脚本实现数据收发. 本程序在不断完善中,请大家不要喷,多多理解,有意见只管提. 系列文章 概述 串口基础功能 TCP客户端收发 参数篇 串 ...
- 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录.开发包 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】二.架构和组成部分
1.1 架构结构图 1.1.1 层次示意图 1.1.2 模型对象示意图 1.2 IO管理器 IO管理器是对串口和网络通讯链路的管理.调度.针对串口和网络通讯链路的特点,在IO管 ...
- .Net开发笔记(十五) 基于“泵”的TCP通讯(接上篇)
上一篇博客中说了基于“泵”的UDP通讯,附上了一个Demo,模拟飞鸽传书的功能,功能不太完善,主要是为了说明“泵”在编程中的应用.本篇文章我再附上一个关于TCP通讯的两个Demo,也都采用了“泵”模式 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 统一的IO接口 开发一套设备驱动同时具备串口和网络通讯能力,通讯接口在逻辑上是统一的,在此基础 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】六.二次开发导出数据驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 导出数据接口的作用 在数据集成系统项目中,要么是自已集成其他厂家的设备,要么是其他厂家集成自己 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】五.二次开发图形显示界面
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 图形显示接口的作用 用于显示采集终端设备的数据,可以把不同类型设备的数据以多种形式集成显示在不 ...
随机推荐
- [BJDCTF2020]Mark loves cat-1|源代码泄露|变量覆盖
主要考察了:源代码泄露.变量覆盖 共展示了三种获取flag的方式 1.打开题目查看未发现有效信息,查看源代码信息,发现返回的dog信息,结果如下: 2.使用dirmap进行目录扫描,发现了.git/c ...
- linux 3.10 一个扇区异常可能引发的hung
最近遇到一例3.10内核的crash: [ 4109.682163] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" d ...
- kafka手动设置offset
项目中经常有需求不是消费kafka队列全部的数据,取区间数据 查询kafka最大的offset: ./kafka-run-class.sh kafka.tools.GetOffsetShell --b ...
- CF1528C Trees of Tranquillity(图论,数据结构)
题面 有两棵 n n n 个点的有根树 T 1 T_1 T1, T 2 T_2 T2,根是 1 1 1 ,共用编号 1 1 1~ n n n.求最大的点集 S S S 满足每个点在 T 1 T_1 ...
- JAVA反序列化漏洞修复解决方法
MyObject类建立了Serializable模块,而且重新写过了readObject()变量,仅有建立了Serializable模块的类的目标才能够被实例化,沒有建立此模块的类将无法使他们的任意状 ...
- K8S之YAML配置文件
通过 YAML 配置文件 部署 Deployment 使用命令(类似 docker-compose) // 部署 kubectl create -f xxx.yml // 删除 kubectl del ...
- 使用【阿里云】服务器、【Xshell】搭建自己的【网站】—— { }
重置实例密码 打开Xshell连接主机 Apache 服务 安装 yum install httpd* -y 操作 启动 systemctl start httpd.service 查看状态 syst ...
- 使用 Spring Boot Admin 监控应用状态
程序员优雅哥 SpringBoot 2.7 实战基础 - 11 - 使用 Spring Boot Admin 监控应用状态 1 Spring Boot Actuator Spring Boot Act ...
- day35-IO流02
JavaOI流02 4.常用的类 4.1文件字节流输入流-FileInputStream InputStream抽象类是所有类字节输入流的超类 InputStream常用的子类: FileInputS ...
- 使用C#编写一个.NET分析器(一)
译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断).IDE.诊断 ...