本地iOS-Android zeroconf ad-hoc网络

时间:2014-07-08 03:44:42

标签: android ios networking cross-platform zeroconf

期望的功能:

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

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

按重要性排序的其他要求/事项:

    适用于Android和iOS的
  • 单一代码库(或至少共享90%以上的代码),例如通过Xamarin或类似的东西。
  • 自动选择要使用的最佳信号(可能是在偏好列表中),例如选择WiFi直接或蓝牙(类似于AllJoyn,Multipeer)
  • 仅使用免费(或某些用户类免费)库

问题:

如何实现所需的功能?

子问题1

甚至可能吗?

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

拒绝的可能性:

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

Alljoyn :iOS绑定仅限Objective-C,无法实现单一代码库

Mono.Zeroconf Supposedly would require separate platform implementations,所以没有实现单一代码库

打开Garden SDK :这是一个很好的解决方案,除了它实际上还没有。

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

如果您对我在stackoverflow和其他地方所做的一些研究感兴趣,那么这里是some notes and links(我在这篇文章中直接添加的链接数量有限。)< / p>

1 个答案:

答案 0 :(得分:1)

不确定这是否是您正在寻找的内容但是我强烈推荐Xamarin使用ZeroConf库,它是原生的并且支持Xamarin。

https://github.com/onovotny/Zeroconf

它非常好用,可以通过本机和统一的方式发现其他ZeroConf设备,让您接近统一的代码库。

编辑:ZeroConf库看起来只支持订阅ZeroConf服务而不发布,我认为您也需要发布。但似乎其他用户已经要求它,所以它似乎是他们将要添加的功能。