多点连接随机断开。

4

我目前遇到一个bug,导致iPad在会话中随机断开连接,但仅在其中一侧出现。

测试开始时

A ----> B

B ----> A

在B发送信息后

A ----> B

B ? A

我目前使用一个主要的iPad(浏览器)和15个其他iPad(广告商)测试这个程序。

我知道,有时调用sendData:太频繁或发送过多数据可能会导致断开连接,我也知道MCSession的默认最大值是8。这就是为什么我在附近找到6个对等体后创建一个新的会话。

我发现了一个关于这个bug的问题。在第一次测试中,似乎没有断开连接,然而,在停止测试并开始第二次试验之后,通常会有3-6个iPad断开连接。我已经正确地结束了会话,停止了浏览和广告。然而,如果我关闭/打开所有iPad的Wi-Fi和蓝牙,则测试显示很少(可能1个)意外断开连接。

这是一个奇怪的问题,我似乎无法解决。


你是在谈论通过蓝牙传输数据吗?我猜如果太多设备正在传输数据,网络会变得过于拥挤,一些设备会失去连接(断开连接)? - Daniel
@Daniel 不是的,我正在使用iOS 7多点连接API,不仅仅是蓝牙。 - ZBurm
你看过这个吗:https://dev59.com/pmMk5IYBdhLWcg3w0hI- - 300baud
@300baud 是的,我已经尝试了那些解决方案,但没有成功。 - ZBurm
你尝试过使用流而不是sendData吗? - JuJoDi
我遇到的问题和你很相似。我只在“客户端”上激活浏览器,在“服务器”上激活广告商。它可以正常运行一段时间,然后会出现随机的断开连接,就像你一样,需要重新启动iPad。我强制实施对等方之间的单个会话,并且目前已经测试了16个物理设备。仍在努力解决中... - 300baud
2个回答

4
我一直在为多点连接开源库工作,并且看到了你所看到的许多问题。
到目前为止,我只有猜测,但我会告诉你我发现的内容。
  1. 你是否双向发送邀请?如果是,我发现它会在10秒至2分钟后随机断开连接。
  2. 你是否拒绝单向邀请?我认为这也是错误的。相反,我认为你应该只单向发送邀请。
  3. 你在发送数据时是否正在广告或浏览?这就是我目前正在研究的,但我认为它会引起问题。
我的建议是调试: 从一个设备向另一个设备发送邀请并接受。不要双向进行。然后,关闭所有浏览和广告。然后看看你到哪里。
让我知道它的进展如何。我正在尝试调试这些相同的问题,所以任何其他人看到的信息都将非常有帮助。谢谢。

嗯...我不太相信广告或浏览会是问题。对我来说,我认为问题在于双向发送邀请。 - plivesey
苹果公司在WWDC会议上推荐仅单向发送邀请。您可以在以下链接中阅读讲话记录:http://asciiwwdc.com/2014/sessions/709?q=Multipeer - Bob Wakefield
1
我似乎无法浏览会话视频,但我保存的链接仍然有效:https://developer.apple.com/videos/play/wwdc2014/709/ - Bob Wakefield

2
调用sendData:太频繁或尝试向太多的同行发送数据会导致断开连接。

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