Javascript/web-dev:为什么你需要一个服务器来连接硬件

Javascript/web dev: Why do you need a server to connect to hardware?

本文关键字:一个 服务器 硬件 连接 web-dev 为什么 Javascript      更新时间:2023-09-26

许多JS应用程序都是客户端。但是,如果我想与Arduino接口,我需要在服务器上使用Node.js之类的东西。这是为什么?

出于安全和跨平台的原因,web应用程序仅限于沙箱。最初,web应用程序只需请求加载URL,在聚焦时处理键盘/鼠标输入,并控制窗口中的显示。

其他一切都取决于浏览器必须提供的附加API,因此默认状态仅限于此。同样,出于安全原因,无法从web应用程序访问操作系统的API。

那么,为什么当前的浏览器没有访问Arduino的API呢?除了从-100分开始的每一项功能外,原因是很难在不影响安全性的情况下允许对USB设备进行此类访问(例如,避免使用网络应用程序读取USB键盘输入,从而捕获未来的所有密码,或者让暖脚器过热)。

幸运的是,目前正在开发这样一个标准,它被称为WebUSB。然而,截至2016年5月,默认情况下没有浏览器支持它,尽管您可以通过更改chrome://flags/#enable-experimental-web-platform-features的值在Chrome中启用它。