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); |
- 我试过连接两者。但他们都给了我同样的错误。
- 我将使用在我的应用程序中用于连接的代码来编辑我的答案
- 您是否禁用了安全模式?您是否尝试打开您的 openfire 管理员并在服务器配置/客户端连接/纯文本(使用 STARTTLS)连接/高级设置中将 STARTTLS 策略设置为禁用?
- 我让它工作了。谢谢 :) 但是我现在创建了一个名为 abc 的用户,密码为 qwerty,当我尝试使用此凭据进行连接时,它显示身份验证失败.. 你能建议我在这里做错了什么吗?
- 我通过用户-> 创建新用户创建了新用户。但无法从我的 android 应用程序登录
- 您是否尝试过我在上一条评论中所说的事情?
- 是的,然后我创建了一个新用户,我可以使用用户名和密码通过 spark 连接它,但是当我尝试通过应用程序连接时,它显示身份验证失败。
请检查:
你在你的 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); |
试试这个,仍然有任何错误或异常然后告诉我。
谢谢,希望对你有所帮助。
- 我已经做到了,问题是我无法登录,在我尝试登录时创建新用户后显示身份验证失败。但如果我在它得到连接的火花中使用该凭据。
- 好,那很好。如果您遇到任何问题,您可以参考上面我写的代码。所以我可以帮你解决任何问题。
来源:https://www.codenong.com/36314533/