MultipeerKit

一个构建在 MultipeerConnectivity 框架之上的高级抽象层,允许 iOS、macOS 和 tvOS 设备通过 Wi-Fi 网络、点对点 Wi-Fi 和蓝牙在它们之间交换数据。

示例应用

查看 example 文件夹以获取示例实现。

Sample

Info.plist 配置

为了使 MultipeerKit 在 iOS 14 上运行时能够正常工作,您需要在应用程序的 Info.plist 文件中包含两个键。

这两个键是 Privacy - Local Network Usage Description (NSLocalNetworkUsageDescription) 和 Bonjour services (NSBonjourServices)。

对于隐私键,请包含一段人类可读的描述,说明用户允许您的应用程序访问本地网络上的设备能获得什么好处。

Bonjour services 键是您的应用程序将浏览的服务类型数组。 对于 MultipeerKit,条目应采用 _servicename._tcp 格式,其中 servicename 是您在 MultipeerConfiguration 中设置的 serviceType。 如果您使用的是默认配置,则此键的值应为 _MKSVC._tcp

如果您没有正确配置上述键,则 MultipeerKit 将无法正常工作。

用法

此库中的主要类是 MultipeerTransceiver,它执行多点通信的发送和接收两方面的工作。

MultipeerKit 可以传输和接收任何符合 Codable 协议的内容,这使您可以轻松定义自己的消息类型。

// Create a transceiver (make sure you store it somewhere, like a property)
let transceiver = MultipeerTransceiver()

// Start it up!
transceiver.resume()

// Configure message receivers
transceiver.receive(SomeCodableThing.self) { payload, sender in
print("Got my thing from \(sender.name)! \(payload)")
}

// Broadcast message to peers
let payload = SomeEncodableThing()
transceiver.broadcast(payload)

有关如何使用 MultipeerKit 的更多信息,请查看文档

集成

MultipeerKit 是一个 Swift 包,要在您的项目中使用它,请将其添加到您的 Package.swift 文件中

let package = Package(
    ...
    dependencies: [
        .package(url: "https://github.com/insidegui/MultipeerKit.git", from: "0.4.0")
    ],
    ...
)