所需功能:
用户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和其他地方做的一些研究感兴趣,这里有一些笔记和链接(我在此帖子中直接放置链接的数量受到限制)。