是否可以使用 iOS 和 Android 设备创建蓝牙网状网络

Mat*_*uth 5 android ios core-bluetooth bluetooth-lowenergy

我目前正在构建一个应用程序,该应用程序创建了一个用户可以在网络上共享信息的平台,但我想创建一个离线选项,让用户在近距离时仍然可以在对等网络上进行通信。是否可以使用智能手机创建 BT 网状网络?

我已经看到蓝牙可以选择使用 BLE 创建网状网络,但是在研究 CoreBluetooth 之后,我找不到任何支持这种类型网络的东西。我已经看到了一些使用 iOS Multipeer 连接的解决方案,但如果可能的话,我最喜欢跨平台解决方案。

小智 3

蓝牙 SIG 于 2017 年 7 月发布了蓝牙 Mesh 功能。网状网络规范源自蓝牙低功耗 v4.0 规范,许多手机支持蓝牙低功耗 v4.0。

然而,手机在不久的将来将不支持蓝牙Mesh网络拓扑。这只是我的想法。

在网状网络中,您可以通过希望节点将数据包传输到超出直接无线电范围的目的地。

我相信,这种场景可以通过发送信标和扫描信标来模拟。以下步骤可能不是完整的解决方案,但它将让您深入了解基本的网状网络设计。

这是步骤;

  1. 您需要知道您的移动设备的所有 MAC 地址。
  2. 所有移动设备必须处于扫描模式才能接收传入的信标。
  3. 您需要制作自定义信标数据格式,其中必须包含源地址、目标地址、生存时间值和您的数据。
  4. 当移动设备收到BLE数据包时;如果数据包中的目标地址与接收设备地址相同,则表示您的数据包已成功发送。如果数据包中的目标地址与接收设备地址不同,则应重新传输数据包。在重新传输数据包之前,您需要减少生存时间值以防止无限数据包传输。

如果您缓存最后发送的信标数据包以防止重复传输同一数据包,这将是一种很好的做法。

我希望这能让您基本了解如何在手机中实现网状网络拓扑。

  • 对于iOS,无法访问Mac地址,您必须依赖设备UUID (3认同)