【问题标题】:Can't connect to remote server using XMPPFramework无法使用 XMPPFramework 连接到远程服务器
【发布时间】:2013-07-07 03:24:40
【问题描述】:

我正在尝试在 iOS 应用程序中使用 XMPPFramework 连接到远程服务器。该应用程序可以很好地连接到我在本地主机上的 openfire 服务器和我的公共 jabber 帐户。只有当我尝试连接到我大学的开发服务器时,它才不起作用,并且没有调用任何委托方法。传递给 connect 方法的 NSError 对象也没有填充任何内容。

基本上我使用以下代码进行连接:

- (BOOL)connect {
    if ([xmppStream isConnected]) {
        return YES;
    }

    [xmppStream setMyJID:jabberID];
    [xmppStream setHostName:[self hostName]];

    NSError* error = nil;
    if (![xmppStream connect:&error]) {
        NSLog(@"Couldn't connect because of error: %@", [error localizedDescription]);
        return NO;
    }

    return YES;
}

我插入了大量日志语句,表明所有值都是正确的,正如我所说,它适用于我的另一个 JID。

我也尝试使用 IP 地址作为主机名,但没有成功。

我的另一个怀疑是,当服务器发送不受信任的证书时,连接过程会卡住,但我将它添加到 Adium 的钥匙串中,但它仍然无法正常工作。

那么问题可能是什么?我可以连接到我可用于测试的任何其他服务器,我还可以使用 Adium 连接到有问题的开发服务器,但不能在我的应用程序中使用 XMPPFramework。

【问题讨论】:

  • 连接成功的是http,连接失败的是https吗?
  • 类似的东西,但是 XMPP 建立在 TCP 之上,而不是 HTTP(S)。

标签: ios xmpp xmppframework


【解决方案1】:

问题是服务器需要安全连接,而不知何故我无法使用XMPPFramework 做到这一点。我让我在大学的顾问将服务器设置为可选的安全连接,现在它可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多