许多JS应用程序都是客户端。但是,如果我想与Arduino接口,我需要在服务器上使用Node.js之类的东西。这是为什么?
答案 0 :(得分:2)
出于安全性和跨平台原因,Web应用程序仅限于sandbox。最初,Web应用程序可以只是请求加载URL,在聚焦时处理键盘/鼠标输入,并在窗口中控制显示。
其他任何东西都取决于浏览器必须提供的其他API,因此默认状态仅此而已。同样,出于安全原因,无法从Web应用程序访问操作系统的API。
那么为什么当前的浏览器都没有用于访问Arduinos的API?除every feature starting at -100 points之外,原因是在不损害安全性的情况下允许这样访问USB设备非常困难(例如,避免Web应用程序读取USB键盘输入,从而捕获所有未来的密码,或者使你的foot warmer过热。
幸运的是,目前正在开发这样一个标准 - 它被称为WebUSB。但是,默认情况下,截至2016年5月,没有浏览器支持此版本,但您can enable it in Chrome更改了chrome://flags/#enable-experimental-web-platform-features
的值。