本地iOS-Android zeroconf ad-hoc网络

sta*_*dAE 9 networking android cross-platform zeroconf ios

期望的功能:

用户A正在Android或iOS设备上运行您的应用.用户A可以自动查找并与附近的其他(<20米?)用户B和C(跨平台)进行通信,无论他们是在运行Android还是iOS,并且没有任何用户具有互联网连接(离线).

我相信这是一个常用的功能,对这个问题有一个明确的答案对移动开发社区来说是一个很大的好处.

根据重要性,您想要的其他要求/事项:

  • Android和iOS的单一代码库(或至少共享90%以上的代码),例如通过Xamarin或类似代码.
  • 自动选择要使用的最佳信号(可能是首选列表)信号,例如选择WiFi直接或蓝牙(类似于AllJoyn,Multipeer)
  • 仅使用Free(或对某些类用户而言)库

问题:

如何实现所需的功能?

子问题1

它甚至可能吗?

:是的.像Firechat和Spaceteam这样的应用程序可以做到这一点,因此它必须是可能的.

被拒绝的可能性:

Multipeer:仅限iOS,无法实现跨平台.

Alljoyn:iOS绑定只是Objective-C,没有实现Single Codebase.

Mono.Zeroconf:据说需要单独的平台实现,所以不要实现单一代码库

Open Garden SDK:将是一个很好的解决方案,除了它实际上还不存在.

我几天来一直在研究这个话题,但我还没有找到明确的答案.部分原因可能是人们使用了很多不同的术语,如网状网络,ad-hoc网络,zeroconf,DNS-SD等,这使得搜索变得困难.

如果你对我在stackoverflow和其他地方所做的一些研究感兴趣,这里有一些注释和链接(我在这篇文章中直接放入的链接数量有限).

Mel*_*are 1

不确定这是否是您正在寻找的,但我强烈推荐 Xamarin 和 ZeroConf 库,该库是本机的并且具有 Xamarin 支持。

https://github.com/onovotny/Zeroconf

它工作得很好,可以让您通过本机且统一的方式发现其他 ZeroConf 设备,从而接近统一的代码库。

编辑:看起来 ZeroConf 库只支持订阅 ZeroConf 服务而不支持发布,我认为您也需要发布。但似乎其他用户也提出了要求,因此他们似乎将添加一项功能。