iOS和Android设备之间的点对点通信

6
所以我是一位相对较新的iOS开发人员,但多亏了Stackoverflow,我成功地使用gamekit/GKSessions实现了应用程序的点对点数据通信,而无需使用服务器。基本上,一个iOS设备充当服务器,其他设备只需连接到它以接收特定于应用程序的数据。
现在,这个应用程序正在被移植到Android平台,我想知道是否有一种方法可以使Android设备连接到iOS应用程序,并像iOS应用程序一样运行。Android开发人员建议使用alljoyn作为android的最佳解决方案,但这似乎还不可用于iOS。
请在这方面提出您的任何想法。如果需要在iOS端进行重构的解决方案,我也非常愿意考虑!

我不明白为什么在Android上实现一个类似iOS的解决方案会有问题,假设你只是使用了标准的TCP或UDP... 你能提供一些关于你在iOS上实现了什么以及为什么你认为与之兼容的Android版本不是超级简单的细节吗? - kabuko
kabuko- 通过iOS的GameKit框架发现的同行需要另一端的应用程序具有相同的捆绑标识符。基本上,他们希望一个应用程序与安装在其他设备上的自己的实例进行通信。因此,在Android上,我认为它甚至不会发现该设备。 - Venkat
但是我以为你说过你已经成功地在没有GameKit的情况下运行它了?还是说这只是没有GameKit服务器的情况下? - kabuko
是的,它没有服务器并且在adhoc wifi网络上通信! 之前抱歉有些含糊不清...我使用了GameKit,所以我不需要任何服务器!希望这样更清楚了... - Venkat
4个回答

4

1

我没有时间等待alljoyn为iOS启动,并且没有其他可行的解决方案适合我的时间表,因此我在中间实现了一个中继服务器来实现这个目标。

对于其他人来说,现在alljoyn已经提供了iOS绑定(www.alljoyn.org)。我还没有尝试过,但是我的应用程序的Android版本与alljoyn配合使用,效果很好,所以我认为它也将对iOS产生相同的影响。

需要考虑使用alljoyn的一个限制是,它不能在不同子网下的设备之间通信。


1
Venkat,我建议你阅读并获取有关P2P的详细信息。这是一个好的来源,因为如果两个设备都在多个NAT后面,你可能会遇到困难。但是,如果你愿意继续前进,总有办法。我的建议是使用中继,但你需要拥有服务器,但中继的行为类似于P2P。请查看上面的来源以获取想法。

0

我认为IOS和Android设备之间的最大点对多点连接数有限制(最多8个对等体),尚未测试使用alljoyn在IOS和Android设备之间的连接性。


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