XMPPFramework - 无法连接到 Openfire 服务器

Posted

技术标签:

【中文标题】XMPPFramework - 无法连接到 Openfire 服务器【英文标题】:XMPPFramework - Can't connect to Openfire Server 【发布时间】:2012-03-16 16:53:59 【问题描述】:

问题:我正在使用 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 从未填充,因此很难看出错误是什么。但是,我调试过代码,发现XMPPSRVResolverQueryRecordCallback有错误。错误代码是-65554。经过谷歌搜索,我发现了这个......

kDNSServiceErr_NoSuchRecord = -65554,

但是,我仍然不确定如何解决这个“NoSuchRecord”问题。 此外,OpenFire 服务器上的日志记录意味着我们甚至没有访问 OpenFire 服务器。

【问题讨论】:

【参考方案1】:

问题可能是您的 Openfire 服务器不在公共域中。假设您的 Openfire 服务器在私有 LAN 服务器上运行,全局 DNS 记录将无法指向它。

如果您可以访问可公开访问的域,请尝试将 Openfire 服务器放在提供此 IP 的计算机上。

通过阅读 XMPPFramework 的文档,这应该不会导致问题,但它对我有影响!

【讨论】:

以上是关于XMPPFramework - 无法连接到 Openfire 服务器的主要内容,如果未能解决你的问题,请参考以下文章

XMPPFramework (Swift) 的问题

在 iPhone 上使用 XMPPFramework 进行 Facebook 聊天

如何在目标c中通过ios中的XMPPFramework连接XMPP服务器

iPhone 的 xmpp

xmppframework 的 didReceive 存在无法正常工作

FTP总是无法连接到服务器