本地iOS-Android零配置自组网络

9

所需功能:

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

我相信这是一个常见的需求,对于移动开发社区来说,有一个明确的答案将是一个巨大的助益。

进一步要求/按重要性排序的事项:

  • 单一代码库(或至少共享90%的代码)适用于Android和iOS,例如通过Xamarin或类似工具。
  • 自动选择最佳(可能会按照偏好列表逐个尝试)信号使用方式,例如选择WiFi直连或蓝牙(类似于AllJoyn、Multipeer)。
  • 仅使用免费(或针对某些用户类别免费)的库。

问题:

如何实现所需功能?

子问题1

这是否可能?

回答:是的。像Firechat和Spaceteam这样的应用程序可以实现,因此一定是可能的。

被拒绝的可能性:

Multipeer:仅适用于iOS,无法实现跨平台

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

Mono.Zeroconf据说需要单独的平台实现,因此无法实现单一代码库

Open Garden SDK:本来是个好的解决方案,但它实际上还不存在。

我已经研究了这个主题几天了,但我还没有找到一个明确的答案。其中一部分原因可能是人们使用许多不同的术语,如网状网络、自组网络、零配置、DNS-SD等,这使得搜索变得困难。

如果你对我在stackoverflow和其他地方做的一些研究感兴趣,这里有一些笔记和链接(我在此帖子中直接放置链接的数量受到限制)。


如果你真的想要单一的代码库,你可以在Unity中使用Alljoyn。 - ThomasW
我刚刚尝试了一次使用Firechat的简短测试,看起来它似乎不能在iOS和Android设备之间发送消息,除非它们都连接到WiFi或移动网络。也就是说,这两个设备不会直接连接。然而,这只是一个快速而简单的测试。我想看看其他人是否有同样的经验。 - ThomasW
这个有更新了吗?我真的很想知道解决方案。 - captainrad
很遗憾,我从未能够找到解决方案。 - stackedAE
1个回答

1
我不确定这是否是您所寻找的,但我强烈推荐使用Xamarin和ZeroConf库,它是本地化的并且支持Xamarin。

https://github.com/onovotny/Zeroconf

它工作得很好,这使你更接近使用本地和统一的方式发现其他ZeroConf设备的统一代码库。
编辑:看起来ZeroConf库仅支持订阅ZeroConf服务而不支持发布,我认为你也需要发布。但似乎其他用户已经提出了这个要求,所以这似乎是他们将要添加的功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接