前端页面直接和连接到 PC 上的设备通信的方法

2022-06-07 15:05:38 +08:00
 yewuya

大致就是电脑上 USB 插上遥控器,通过遥控器直接远程控制设备,需要前端读取遥控器发出的控制信号,信号解析已经搞定,但是不知道数据怎么直接发给前端

1695 次点击
所在节点    程序员
9 条回复
liyang5945
2022-06-07 15:10:08 +08:00
需要开发一个桌面应用程序实现以下功能,1 、读取 usb 解析信号,2 、启动一个 websocket 服务,发送信号给前端
yewuya
2022-06-07 15:13:39 +08:00
@liyang5945 这个我想过,不过最好还是直连前端
yewuya
2022-06-07 15:19:28 +08:00
找到两个接口貌似可行,一个是 gamepad api 用来控制游戏手柄的,一个是 Web Serial API 用来 web 连接串口的
Ediacaran
2022-06-07 15:21:31 +08:00
以前找资料找到过 webusb api 这个接口,但是没试过,不清楚有没有坑
snoopyhai
2022-06-07 15:22:09 +08:00
前端是无法突破浏览器的, 或者考虑 electron 这种更开放的方式, 可能有方案能直连.

以前做过类似场景.
网页先 jsonp 请求本地一个地址. 如果不成功, 则认定为未安装客户端.
如果成功, 则走 webshell://协议取尝试启动客户端, 从而启动 websockert 服务.
最后网页尝试连接 websocket 服务.
XiLingHost
2022-06-07 15:25:15 +08:00
chrome 倒是有相关的接口,pixel 刷机就是走的 webusb 我记得
https://web.dev/i18n/zh/usb/
sunbreak
2022-06-07 16:56:52 +08:00
个人推荐用 Flutter Windows/macOS 来做,更接近底层,同时开发也足够方便

https://github.com/woodemi/quick_usb

或者用你说的 WebHID 或者 WebUSB 接口

https://github.com/woodemi/web_usb.dart (这是 Dart 库,内有 WICG 文档链接)

https://github.com/woodemi/web_hid.dart (这是 Dart 库,内有 WICG 文档链接)
hellsnow
2022-06-08 10:55:04 +08:00
以前做过一个虚拟币的加密钥匙,好像用的 chrome.hid
MyouiSouth
2022-06-08 11:32:53 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/857918

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX