XMPP Openfire 连接被拒绝

Posted

技术标签:

【中文标题】XMPP Openfire 连接被拒绝【英文标题】:XMPP Openfire Connection Refused 【发布时间】:2016-03-30 16:26:12 【问题描述】:

我正在使用Openfire 服务器,它的管理面板在我的本地主机上运行。当我尝试使用本地主机上的 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:30000 毫秒后无法连接到 /127.0.0.1(端口 5223):isConnected 失败:ECONNREFUSED(连接被拒绝)

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

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

提前致谢。

【问题讨论】:

【参考方案1】:

您确定连接到端口 5222 吗?

SMACKException:以下地址失败:“127.0.0.1:5223”失败,因为 java.net.ConnectException:30000 毫秒后无法连接到 /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));

【讨论】:

我已经尝试连接两者。但他们都给了我同样的错误。 我将使用我在应用程序中用于连接的代码来编辑我的答案 您是否禁用了安全模式?您是否尝试打开您的 openfire 管理员并在服务器配置/客户端连接/纯文本(使用 STARTTLS)连接/高级设置中将 STARTTLS 策略设置为禁用? 我搞定了。谢谢 :) 但是我现在创建了一个名为 abc 的用户,密码为 qwerty,当我尝试使用此凭据进行连接时,它显示身份验证失败.. 你能建议我在这里做错了什么吗? 我已经通过Users-> Create new User创建了新用户。但无法从我的 android 应用程序登录【参考方案2】:

请检查:

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

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

    config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);

【讨论】:

【参考方案3】:

嗨,我已经实现了 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);

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

谢谢,希望对你有帮助。

【讨论】:

我已经做到了,问题是我无法登录,在我尝试登录时创建新用户后显示身份验证失败。但如果我在它得到连接的火花中使用该凭据。 好的,很好。如果您遇到任何问题,您可以参考上面我写的代码。所以我可以帮你解决任何问题。

以上是关于XMPP Openfire 连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Android基于XMPP Smack Openfire下学习开发IM连接断开重连

使用openfire在xmpp中几秒钟后连接断开

在 Xmpp/Openfire 中从名册中删除一个朋友

XMPP iOS:无法连接 openfire 服务器

在 openfire 中保持连接处于活动状态,但在 xmpp 中将用户显示为离线

连接 throw stropes.js 时未收到来自 Openfire Xmpp 的通信