在 Swift 中为 Bonjour NetService 创建 TXT 记录
Create a TXT record for Bonjour NetService in Swift
我正在 Swift 3.
中使用 Apple's Bonjour 创建点对点聊天应用程序
发布 NetService 后,我想添加一个 user_id 和名称参数作为 TXT 记录。我花了 3 - 4 个小时搜索如何在 Swift 3 中创建 TXT 记录,但没有找到任何有用的解决方案。一旦我为一个NetService设置了TXT记录,我也想阅读它
设置TXT记录数据我们要用到
func setTXTRecord(Data?)
请建议我如何设置和获取 NetService 的 TXT 记录
试试这个。这些是 NetServiceDelegate 调用。
public func netServiceDidPublish(_ service: NetService) {
let txtDict = ["peerID": _localNode.peerID.data(using: String.Encoding.utf8)!]
let txtData = NetService.data(fromTXTRecord: txtDict)
if !service.setTXTRecord(txtData) {
print("did not set txtRecord")
}
}
public func netService(_ service: NetService, didUpdateTXTRecord data: Data) {
let txtDict = NetService.dictionary(fromTXTRecord: data)
if let idObject = txtDict["peerID"], let peerID = NSString(data: idObject, encoding: String.Encoding.utf8.rawValue) as String? {
// use peerID
}
}
如果你愿意,你可以从我在 GitHub 上的项目中看到这一点:https://github.com/AaronBratcher/ALBPeerConnection。
我正在 Swift 3.
中使用 Apple's Bonjour 创建点对点聊天应用程序发布 NetService 后,我想添加一个 user_id 和名称参数作为 TXT 记录。我花了 3 - 4 个小时搜索如何在 Swift 3 中创建 TXT 记录,但没有找到任何有用的解决方案。一旦我为一个NetService设置了TXT记录,我也想阅读它
设置TXT记录数据我们要用到 func setTXTRecord(Data?)
请建议我如何设置和获取 NetService 的 TXT 记录
试试这个。这些是 NetServiceDelegate 调用。
public func netServiceDidPublish(_ service: NetService) {
let txtDict = ["peerID": _localNode.peerID.data(using: String.Encoding.utf8)!]
let txtData = NetService.data(fromTXTRecord: txtDict)
if !service.setTXTRecord(txtData) {
print("did not set txtRecord")
}
}
public func netService(_ service: NetService, didUpdateTXTRecord data: Data) {
let txtDict = NetService.dictionary(fromTXTRecord: data)
if let idObject = txtDict["peerID"], let peerID = NSString(data: idObject, encoding: String.Encoding.utf8.rawValue) as String? {
// use peerID
}
}
如果你愿意,你可以从我在 GitHub 上的项目中看到这一点:https://github.com/AaronBratcher/ALBPeerConnection。