1

問題: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が入力されないため、エラーが何であるかを確認するのは困難でした。ただし、コードをデバッグしたところ、のエラーが見つかりましQueryRecordCallbackXMPPSRVResolver。エラーコードは-65554です。これのためのグーグルの後、私はこれを発見しました...

kDNSServiceErr_NoSuchRecord = -65554、

ただし、この「NoSuchRecord」の問題を解決する方法はまだわかりません。さらに、OpenFireサーバーにログオンしているということは、OpenFireサーバーに到達していないことを意味します。

4

1 に答える 1

3

問題は、Openfire サーバーがパブリック ドメインにない可能性があります。Openfire サーバーがプライベート LAN サーバーで実行されていると仮定すると、グローバル DNS レコードはそれを指すことができません。

公的にアクセス可能なドメインにアクセスできる場合は、この IP を提供するマシンに Openfire サーバーを配置してみてください。

XMPPFramework のドキュメントを読むと、これで問題が発生することはありませんが、私には問題がありました。

于 2012-03-19T13:42:02.933 に答える