关于android:XMPP Openfire Connection Refused

XMPP Openfire Connection Refused

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

我使用的凭据是...

1
2
3
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\\' failed because java.net.ConnectException: failed to connect to /127.0.0.1 (port 5223) after 30000ms: isConnected failed: ECONNREFUSED (Connection denied)

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

我尝试用谷歌搜索,但似乎没有什么对我有用。那么任何人都可以帮助我让它工作吗?我对 Openfire 服务器还很陌生,所以对它知之甚少。

提前致谢。


您确定连接到端口 5222 吗?

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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));
}


请检查:

  • 你在你的 openfire 服务器上打开了 5222 和 5223 端口吗?我和你一样出现"无法连接"错误,一切正常,但我没有打开 5222 和 5223 端口允许连接。

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

    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);


  • 嗨,我已经实现了 xmpp,下面的 github 链接有示例。尝试跟进。

    https://github.com/saveendhiman/XMPPSample_Studio

    这里,我说你不见了。你必须提到端口号。xmpp指定为5222。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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);

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

    谢谢,希望对你有所帮助。