問題:XMPPFrameworkとOpenfireServerを使用してiOSチャットアプリを作成しています。しかし、サーバーに接続できません。ただし、GTalkまたはFacebookアカウントでログインできます。さらに、Sparkなどの別のJabberクライアントを使用して、自分のサーバーのアカウントにログインできます。
コード:私のコードのベースは次のチュートリアルからのものです: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サーバーに到達していないことを意味します。