我目前正在使用MYNetwork库Bonjour类,并且在发现txt记录时遇到问题。当一个新服务出现时,它的txt记录每次都为空。
在我的服务器端,我以这种方式设置txt记录:
self.server = [[MYBonjourRegistration alloc] initWithServiceType: @"_blipecho._tcp." port:9121];
[server setString:@"Cyprian" forTXTKey:@"Name"];
[server start];
然后在浏览器上我发现并记录数据:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if ([keyPath isEqual:@"services"]) {
NSSet *newServices = (NSSet*)[change objectForKey:@"new"];
if(newServices){
MYBonjourService *service;
for (service in newServices){
textView.text = [NSString stringWithFormat:@"%@\nNew user: %@ (%@)", textView.text, service.name, [service txtRecord]];
}
}
}
我为txtRecord得到null。
答案 0 :(得分:0)
好的,得到了答案。
问题是新发现的服务尚未解决,因此没有数据。
首先必须解决该服务。
-(void)resolveService:(MYBonjourService*)service{
service.addressLookup.continuous = YES;
[service.addressLookup addObserver: self
forKeyPath: @"addresses"
options: NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
context: NULL];
[service queryForRecord: kDNSServiceType_NULL];
}