我正在使用Openfire
服务器,它的管理面板正在我的本地主机上运行。当我尝试使用localhost上的android stack库连接到它时,端口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后未能连接到/12.0.0.1(端口5223):isConnected失败:ECONNREFUSED(拒绝连接)
然而,我刚刚安装了openfire
,然后进行了设置。我可以在上看到"管理"面板http://localhost:9090/并且可以使用用户名和密码作为管理员登录。
我试着用谷歌搜索了一下,但似乎什么都不适合我。有人能帮我让它工作吗?我是openfire
服务器的新手,所以对它知之甚少
提前感谢。
您确定要连接到5222端口吗?
SMACKException:以下地址失败:"127.0.0.1:5223"失败,因为java.net.ConnectException:在30000ms后未能连接到/12.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服务器上的5222和5223端口?我和你一样有"无法连接"的错误,一切都很好,但我没有打开5222和5223端口来允许连接。
-
再次检查服务器上的安全配置,以在客户端上设置正确的配置
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
hi我已经实现了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);
试试这个,你仍然有任何错误或异常,然后告诉我。
谢谢你,希望这对你有帮助。