我正在尝试使用smack在localhost上连接到openfire / ejabberd(我已经配置并测试了与strophe.js的连接)。这就是我尝试过的:
Log.d(TAG, "Connecting to server " + mServiceName);
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
config.setUsernameAndPassword("test_user1@home", "password");
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
config.setServiceName("home");
config.setHost("127.0.0.1");
config.setPort(5222);
config.setCompressionEnabled(true);
config.setDebuggerEnabled(true);
final XMPPTCPConnection xmpptcpConnection = new XMPPTCPConnection(config.build());
SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");
mConnection = new XMPPTCPConnection(config.build());
mConnection.setPacketReplyTimeout(10000);
mConnection.addConnectionListener(this);
mConnection.connect();
mConnection.login();
但我回来了:
org.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: '127.0.0.1:5222' failed because java.net.ConnectException: failed to connect to /127.0.0.1 (port 5222) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused)
我正在使用手机连接。我认为这种情况正在发生,因为它没有在互联网上注册。我已经购买了一个域并创建了一个子域名,但我不知道如何注册我的openfire / ejabberd服务器。
如果构建器配置中有任何内容,那么有人可以给我一些关于如何注册它的信息吗?
编辑:要在公共帐户上注册openfire,我必须启用ssh并进行一些配置(我宁愿不这样做)。有没有办法在我的本地帐户上测试我的Android应用程序?
答案 0 :(得分:1)
您使用的是IP 127.0.0.1。这意味着本地计算机的本地IP地址。从手机运行该功能意味着您不是要尝试连接到计算机上的XMPP服务器,而是连接到手机上的XMPP服务器上。
它无法正常工作。您需要使用计算机的IP地址。
答案 1 :(得分:0)
如果您还没找到问题的答案。尝试使用此主机10.0.2.2而不是您的主机(127.0.0.1)。这解决了"连接被拒绝"。
答案 2 :(得分:0)
您使用的是IP 127.0.0.1,这是本地计算机的本地IP地址。它无法正常工作。我们必须使用我们电脑的IP地址。