许多JS应用程序都是客户端。但是如果我想与Arduino进行接口,那么我需要通过使用像Node.js之类的服务器来实现。为什么是这样?Javascript/web dev:为什么你需要一个服务器来连接硬件?
2
A
回答
2
出于安全性和交叉平台的原因,Web应用程序仅限于sandbox。最初,Web应用程序可能只需要加载URL,当它们聚焦时处理键盘/鼠标输入,并控制其窗口中的显示。
还有什么依赖于浏览器必须提供的额外的API,所以默认状态就是其他。同样,出于安全原因,操作系统的API不能从Web应用程序访问。
那么为什么目前的浏览器不具有访问Arduinos的API?除了every feature starting at -100 points之外,原因是很难在不影响安全性的情况下访问USB设备(例如,避免Web应用程序读取USB键盘输入并因此捕获所有未来密码或过热您的foot warmer)。
幸运的是,目前正在开发这样的标准 - 它被称为WebUSB。但是,截至2016年5月,默认情况下,浏览器不支持它,但您需要更改chrome://flags/#enable-experimental-web-platform-features
的值can enable it in Chrome。
+0
请注意,使用JavaScript进行设备控制的完全不同的方式是通过Node.js,如OP注释。该方法完全避免了浏览器问题。 – Pointy
相关问题
- 1. 为什么你需要一个网络服务器来使用GET和POST
- 2. 为什么socat在连接到Web服务器时需要“fork”?
- 3. 为什么你需要一个Hyper-V?
- 4. 为什么我需要一个连接来创建PreparedStatements?
- 5. 的iOS/Android为保持连接需要一个HTTP服务器
- 6. 什么是服务发现,为什么你需要它?
- 7. 服务器端为websocket需要什么?
- 8. VSSonarExtention - 为什么连接到服务器?
- 9. 将http服务器转换为https服务器需要什么?
- 10. 为什么我需要“sudo”来运行Moovweb服务器?
- 11. 为什么不直接连接到客户端的SQL服务器?为什么我们需要客户端 - 服务器模型中的应用服务器?
- 12. SMTP服务器需要一个安全连接-gmail
- 13. 为了将java连接到Wamp服务器需要什么配置
- 14. 当你有WCF时,为什么需要服务总线?
- 15. 为什么你需要指定WCF服务的端点地址?
- 16. 为什么Tomcat拒绝来自其他服务器的连接?
- 17. 为什么这个简单的服务器不接受连接?
- 18. 为什么或什么时候应用需要服务器?
- 19. 什么是Microsoft SQL服务器,为什么需要安装它?
- 20. 服务器,我需要什么?
- 21. 邮件服务器,为什么需要在smtp.mail.com或imap.mail.com或mail.mail.com
- 22. 连接*硬币RPC服务器与PHP
- 23. 需要一个服务来处理多个连接到1个数据库
- 24. 为什么需要硬链接和软链接?
- 25. 什么是服务总线,我什么时候需要一个?
- 26. 为什么服务需要一个与其相关的进程?
- 27. 你为什么要插入到SQL服务器的视图中?
- 28. 为什么你需要一个为Html.Action定义的路由?
- 29. IPython需要什么硬件规格?
- 30. 你什么时候需要在Ruby中需要一个模块?
请详述,你想知道什么? node.js是用c/C++编写的,它不是香草的javascript,它将前者留给客户端 – zython
好吧,这是我的情况(和我一起裸露,因为我什么都不知道):我正在使用p5与arduino进行交互.js,但它要求我安装节点,以便它可以在服务器上运行。为什么如果我正在使用硬件I/O,我需要在服务器上运行它,但是如果我只是在做基本的JS Web脚本(如绘制一个圆圈),我可以在没有服务器的情况下在本地运行所有内容? –
通常你通过一个通信端口与Arduino通信。网页中的JS无法访问端口。所以,你运行一个可以的服务器。 –