以下地址失败:'127.0.0.1:5222'openfire / ejabberd smack

时间:2016-05-19 21:31:34

标签: android ejabberd openfire smack

我正在尝试使用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应用程序?

3 个答案:

答案 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地址。