Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios XMPPFramework-Can';无法连接到Openfire服务器_Ios_Xmpp_Xmppframework - Fatal编程技术网

Ios XMPPFramework-Can';无法连接到Openfire服务器

Ios XMPPFramework-Can';无法连接到Openfire服务器,ios,xmpp,xmppframework,Ios,Xmpp,Xmppframework,问题:我正在使用XMPPFramework和Openfire服务器创建一个iOS聊天应用程序。但是,我无法连接到服务器。不过,我可以使用GTalk或Facebook帐户登录。此外,我可以使用另一个Jabber客户端(如Spark)在自己的服务器上登录该帐户 代码:我的代码的基础来自以下教程: 这里是它连接的地方: - (void)setupStream { xmppStream = [[XMPPStream alloc] init]; [xmppStream addDelegat

问题:我正在使用XMPPFramework和Openfire服务器创建一个iOS聊天应用程序。但是,我无法连接到服务器。不过,我可以使用GTalk或Facebook帐户登录。此外,我可以使用另一个Jabber客户端(如Spark)在自己的服务器上登录该帐户

代码:我的代码的基础来自以下教程:

这里是它连接的地方:

- (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日更新:从未填充错误,因此很难看到错误是什么。但是,我已经调试了代码,在
xmppsrvsolver
QueryRecordCallback
中发现了一个错误。错误代码是-65554。在谷歌搜索之后,我发现了这个

kDNSServiceErr_NoSuchRecord=-65554

然而,我仍然不确定如何解决这个“无记录”问题。
此外,登录OpenFire服务器意味着我们甚至无法访问OpenFire服务器。

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

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

通过阅读XMPPFramework的文档,这应该不会引起问题,但我确实遇到了问题