问题:我正在使用 XMPPFramework 和 Openfire 服务器创建一个 iOS 聊天应用程序。但是,我无法连接到服务器。但是,我可以使用 GTalk 或 Facebook 帐户登录。此外,我可以使用另一个 Jabber 客户端(例如 Spark)在我自己的服务器上登录该帐户。
代码:我的代码基础来自以下教程:http: //mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/
这是它连接的地方:
- (void)setupStream {
xmppStream = [[XMPPStream alloc] init];
[xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];
}
- (BOOL)connect {
[self setupStream];
NSString *jabberID = [[NSUserDefaults standardUserDefaults] stringForKey:@"userID"];
NSString *myPassword = [[NSUserDefaults standardUserDefaults] stringForKey:@"userPassword"];
if (![xmppStream isDisconnected]) {
return YES;
}
if (jabberID == nil || myPassword == nil) {
return NO;
}
[xmppStream setMyJID:[XMPPJID jidWithString:jabberID]];
password = myPassword;
NSError *error = nil;
if (![xmppStream connect:&error])
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:[NSString stringWithFormat:@"Can't connect to server %@", [error localizedDescription]]
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
[alertView release];
return NO;
}
return YES;
}
3 月 19 日更新:NSError 从未填充,因此很难看出错误是什么。QueryRecordCallback
但是,我已经调试了代码,发现XMPPSRVResolver
. 错误代码是-65554。在谷歌之后,我发现了这个......
kDNSServiceErr_NoSuchRecord = -65554,
但是,我仍然不确定如何解决这个“NoSuchRecord”问题。此外,OpenFire 服务器上的日志记录意味着我们甚至没有访问 OpenFire 服务器。