問題:我創建使用XMPPFramework和Openfire的服務器在iOS聊天應用。但是,我無法連接到服務器。我可以與GTalk的或Facebook賬戶但是登錄。此外,我可以使用另一個Jabber客戶端(如Spark)在我自己的服務器上登錄該帳戶。XMPPFramework - 無法連接到服務器的Openfire
代碼:我的代碼的基礎是從以下教程: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是從來沒有填充所以這是很難看出錯誤是什麼。不過,我已經通過代碼調試,並在XMPPSRVResolver
QueryRecordCallback
發現錯誤。錯誤代碼是-65554。這一個谷歌之後,我發現這個...
kDNSServiceErr_NoSuchRecord = -65554,
但是,我仍然不確定如何解決這個 'NoSuchRecord' 的問題。 此外,Openfire的服務器上的日誌記錄意味着我們甚至沒有獲得到的Openfire服務器。