多种连接框架:稳定性和建议

Ome*_*mer 14 ios multipeer-connectivity

我正在开发一个使用MC框架作为沟通渠道的项目,经过一些测试后,我认为这个渠道在某种程度上不稳定而无法依赖.

我一直在关注Apple的文档和视频,以便正确使用框架,但碰巧:

  • 同伴们经常在配对后断开连接,如果我配对一个以上的同伴,则会更加失败.
  • 一些数据包具有混合数据

是否有任何建议与框架一起使用?即:

  • 具体项目设置?(即:功能部分中是否有需要启用的东西?)
  • 多线程限制?(即:始终从同一个线程调用mc方法)
  • 要发送的数据量有限制吗?

我发现这个链接提到了一些关于框架在压力下表现不佳的事情.那是我正在寻找的那种建议:).

作为记录:

  • 我正在使用基于帖子的实现,因为Apple的项目对我不起作用.
  • MCSession对于我尝试配对的所有同伴,我只使用一个
  • 加密首选项设置为 MCEncryptionNone
  • 使用sendData:sendResourceAtURL:与同行沟通.

Ala*_* T. 3

我在游戏中使用 MC 框架,并找到了一些解决其明显不稳定问题的解决方法:

1) 我使用每 15 秒发送一次的“保持活动”事务来维持链接上的活动。我发现这几乎解决了我遇到的所有连接丢失问题。

2)我将数据接收触发的所有处理分派到主线程,并且从不在线程之间携带任何MCPeer或MCSession对象(初始连接协议除外)。我还这样做是为了最大限度地减少数据接收代码所花费的时间,以便 MC 使用的线程尽快重新获得控制权(我还发现这是一些断开连接的根源)。我不应用此规则发送数据(仅在接收时)

3)我还没有找到一个干净的解决方案来解决尝试建立连接时出现的对等点重复(使用标准 UI 和我自己的 UI)。到目前为止,比较 MCPeer ID 以避免重复似乎只能删除一些重复。另外,似乎使用相同的 MCSession 进行广告 (MCAdvertiserAssistant) 并连接到对等点会导致一些冲突,因此每次启动助手时我都会使用一个新的、单独的 MCSession 实例。