【问题标题】:Multipeer Connectivity Connecting / Managing Peers Manually多点连接 手动连接/管理点
【发布时间】:2014-12-02 14:35:12
【问题描述】:

我试图弄清楚手动连接到对等点的 NSData 对象是什么。我在苹果文档中找不到它,它只是说它需要来自对等方的连接数据对象,但我找不到从哪里得到它。这是Apple Doc

我想用这个

 func connectPeer(_ peerID: MCPeerID!, withNearbyConnectionData data: NSData!)

当对等方断开连接时,我正在使用此方法。出于某种原因,当对等方断开连接时,我仍然可以从中发送和接收信息,因此我想使用此方法强制重新连接。

感谢您的帮助

【问题讨论】:

  • 有什么理由要这样做,而不是使用更高级别的 MCNearbyServiceBrowserMCNearbyServiceAdvertiser 类?
  • 我能看到的所有强制连接都是使用浏览器重新邀请他们加入会话。尽管我仍然可以发送和接收消息,但我遇到了连接断开的大问题。
  • 您能否发布您当前正在断开连接的代码? MPC 有几个已知问题,您可能只是遇到其中之一。
  • @ChrisH 这并不是真正的特定代码,我在这种情况下会丢失连接。有时一个设备可能无法找到它周围的所有其他设备。这样,如果我得到了 func connectPeer(_ peerID: MCPeerID!, withNearbyConnectionData data: NSData!) 的数据需要的答案,我可以解决其中的一些问题。
  • 有道理。我添加了一个可能的答案

标签: ios swift multipeer-connectivity


【解决方案1】:

您正在寻找的NSData 对象是该函数完成块的一部分:

func nearbyConnectionDataForPeer(_ peerID: MCPeerID!,
       withCompletionHandler completionHandler: ((NSData!,
                                      NSError!) -> Void)!)

文档中并不清楚,但我怀疑您自己的发现代码会在初始连接阶段将您本地创建的MCPeerID 对象传递给其他发现的设备。然后你会在上面的函数中使用发现的对等点的MCPeerID对象,最后用你得到的数据调用connectPeer函数。

我很想听听你是否能做到这一点!

【讨论】:

    【解决方案2】:

    如果您真的想了解传递给对等方以建立连接的数据,我建议您应该阅读以下文档: truth about multipeer connectivity framework

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多