我正在使用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
服务器很新,所以对它知之甚少。
先谢谢。
答案 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)
请检查:
您是否在openfire服务器上打开了5222和5223端口?我已经"无法连接"像你这样的错误,每件事都没关系,但我没有打开5222和5223端口以允许连接。
再次检查服务器上的安全配置,以在客户端上设置正确的配置
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);
试试这个,你还有任何错误或异常,然后告诉我。
谢谢你希望这会对你有帮助。