如何将 HTML 5 与硬件设备链接/配对?

Posted

技术标签:

【中文标题】如何将 HTML 5 与硬件设备链接/配对?【英文标题】:How to link/pair HTML 5 with a hardware device? 【发布时间】:2016-08-22 23:26:01 【问题描述】:

我有两个实体希望能够开始通信:

使用 Atmel ATSAMS70 和 WINC1500 Wifi 模块的硬件设备

html 5 应用程序

拥有 HTML 5 应用程序的想法是能够轻松地与大多数商业设备进行通信,例如:Windows 计算机、android 手机、Mac OSX 计算机和 ios 设备。除此之外,我会完全避免使用本机代码。

目前,他们可以使用 WebSockets 相互通信,但不知何故,自定义板的 IP 地址必须从 HTML 5 中获知才能启动通信。

为了做到这一点,我可以想到 3 个选项:

    使用 WebRTC,我可以获取浏览器的本地 IP 地址,然后我可以扫描本地设备(考虑到 255.255.255.0 网络掩码)。

    有一个外部服务器,硬件设备可以发送其本地地址,稍后将由 HTML 5 检索。

    在开发板和 HTML5 之间使用 Bonjour 或某种设备发现服务。

我找不到实现#3 的方法,但#2 对我来说似乎可行。 #1 是我现在正在做的事情,但是 iOS 目前不支持 WebRTC。

那么,还有其他更好的方法来实现这种通信吗?

【问题讨论】:

【参考方案1】:

您没有提到 WINC1500 单元是如何连接到网络的,但可能是处于 STA 模式(充当 wifi 站而不是成为软件接入点或 ad-hoc 网络的一部分)并且正在通过现有接入点提供其 IP 详细信息?

通常我建议一旦连接,设备应该通过特定端口上的常规 UDP 广播开始指示其在网络上的可用性,但我(诚然有限)对 WebSockets 的理解是它创建 TCP 连接。我见过的唯一 Bonjour 实现也使用 UDP 消息传递,这可能是您在第三种方法时遇到问题的原因。

您的第二种方法似乎更有效。位于本地网络上已知(或可发现)IP 的服务器,它允许 Atmel 设备注册自身(及其 IP 地址)并允许其他应用程序(您的 HTML 5 WebSockets 应用程序)请求该连接信息以允许它们创建他们需要的 WebSocket TCP 连接。

我想这并不能真正回答你关于“有没有更好的方法?”的问题,除了说“我想不到,你的第二种方法对我来说看起来不错......”。对不起!总的来说,听起来是一个非常有趣的项目,

【讨论】:

以上是关于如何将 HTML 5 与硬件设备链接/配对?的主要内容,如果未能解决你的问题,请参考以下文章

设备挂载与磁盘划分

如何将 Linux 驱动程序与硬件设备匹配

如何第一次以编程方式将 ibeacon 与 iOS 配对

LINUX设备驱动程序如何与硬件通信

SylixOS与硬件设备连接问题——硬件设备串口网口连接问题

如何将APK文件与特定的android版本和手机硬件设置进行链接?