許多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無法訪問端口。所以,你運行一個可以的服務器。 –