拒绝XMPP Openfire连接

时间:2016-03-30 16:26:13

标签: android xmpp openfire smack

我正在使用Openfire服务器,其管理面板正在我的localhost上运行。当我尝试使用localhost上的android smack库连接到它时,端口5222它给了我连接错误。

我使用的凭据是......

private static final String DOMAIN = "127.0.0.1";
private static final String USERNAME = "admin";
private static final String PASSWORD = "admin";

我得到的例外是......

SMACKException:以下地址失败:' 127.0.0.1:5223'失败,因为java.net.ConnectException:30000ms后无法连接到/127.0.0.1(端口5223):isConnected失败:ECONNREFUSED(拒绝连接)

但是我刚刚安装了openfire然后进行了设置。我可以在 http://localhost:9090/ 上看到管理员面板,并可以使用用户名和密码作为管理员登录。

我尝试谷歌但似乎没有什么对我有用。那么有人可以帮助我让它运作吗?我对openfire服务器很新,所以对它知之甚少。

先谢谢。

3 个答案:

答案 0 :(得分:2)

您确定要连接到端口5222吗?

SMACKException:以下地址失败:' 127.0.0.1:5223'失败,因为java.net.ConnectException:30000ms后无法连接到/127.0.0.1(端口5223):isConnected失败:ECONNREFUSED(拒绝连接)

您的堆栈指向5223(SSL)端口。 此外,您必须使用公共IP而不是localhost。

synchronized void configureConnection() {
    XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration
            .builder();

    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    config.setServiceName(HOST);
    config.setHost(HOST);
    config.setPort(PORT);
    config.setDebuggerEnabled(true);
    XMPPTCPConnection.setUseStreamManagementResumptiodDefault(true);
    XMPPTCPConnection.setUseStreamManagementDefault(true);
    connection = new XMPPTCPConnection(config.build());
    connection.addSyncStanzaListener(this, new StanzaTypeFilter(org.jivesoftware.smack.packet.Message.class));
}

答案 1 :(得分:1)

请检查:

  1. 您是否在openfire服务器上打开了5222和5223端口?我已经"无法连接"像你这样的错误,每件事都没关系,但我没有打开5222和5223端口以允许连接。

  2. 再次检查服务器上的安全配置,以在客户端上设置正确的配置

    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);

答案 2 :(得分:0)

您已经实现了xmpp,并且github链接下面有例子。请尝试跟进。

https://github.com/saveendhiman/XMPPSample_Studio

在这里,你根本不知道。你必须提到端口号。为xmpp指定是5222。

ConnectionConfiguration config = new ConnectionConfiguration(HOST1,
            5222);
    SmackConfiguration.DEBUG_ENABLED = true;
    SASLAuthentication.supportSASLMechanism("MD5", 0);
    System.setProperty("smack.debugEnabled", "true");
    config.setCompressionEnabled(false);
    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    config.setReconnectionAllowed(true);
    config.setSendPresence(true);
    config.setRosterLoadedAtLogin(true);

试试这个,你还有任何错误或异常,然后告诉我。

谢谢你希望这会对你有帮助。