在最近的项目中实现 Apple 的 MultipeerConnectivity 框架时,我遇到了一些问题。一些研究显示我并不是唯一一个遇到这些挫折的人,因此我创建了一个小型类来实现 MCSessionDelegate
,MCNearbyServiceAdvertiserDelegate
和 MCNearbyServiceBrowserDelegate
。最初它是为聊天应用程序设计的,但也适用于其他用途。
您可能想使用它的原因
MCPeerID
来避免在网络上出现重名的“幽灵”设备。它还通过使用每个 MCNearbyServiceAdvertiser
实例的 discoveryInfo
属性允许每个客户端的明显名称更改,同时保持 displayName
不变,以进一步减轻这个问题。UIImage
实例。导入模块
import MultiParty
然后实现 JSMultiPartyDelegate
public protocol JSMultiPartyDelegate {
func didReceiveMessageFromPeerId(peerId: MCPeerID, message: AnyObject)
func didConnectToPeerId(peerId: MCPeerID)
func didDisconnectFromPeerId(peerId: MCPeerID)
func didFindPeerId(peerId: MCPeerID, name: String?)
func didLosePeerId(peerId: MCPeerID)
func didStartReceivingImage(peerId: MCPeerID, progress: NSProgress)
func didFinishReceivingImage(peerId: MCPeerID, image: UIImage)
func didReceiveStream(stream: NSInputStream, withName: String, fromPeer: MCPeerID)
func didFailToReceiveImage(peerId: MCPeerID, error: NSError)
func didNotStartAdvertisingPeer(error: NSError)
func didNotStartBrowsingForPeers(error: NSError)
}
作为一个基于 Swift 的新的 CocoaPod,它不支持 iOS < 8。为了支持 iOS 7+,您只需将类复制到您的项目中即可。
Jordan Sitkin,[email protected]
MultiParty 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。