使用asmack 4.0.2连接到openfire服务器时出错

时间:2014-08-12 16:56:52

标签: xmpp asmack

我尝试使用Asmack库4.0.2连接到Openfire Server。即使我在端口上提供了正确的IP地址,也无法连接到服务器。

public static final String HOST = "192.168.1.100"; 
public static final int PORT = 9090;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    connect();
        }

public void connect(){
    AsyncTask<Void, Void, Boolean> connectionThread = new AsyncTask<Void, Void, Boolean>(){ 
    @Override
    protected Boolean doInBackground(Void... arg0){
    boolean isConnected = false;

    ConnectionConfiguration config = new ConnectionConfiguration(HOST,PORT);
    config.setReconnectionAllowed(true);
    config.setSecurityMode(SecurityMode.disabled);
    config.setDebuggerEnabled(true);

    XMPPConnection connection = new XMPPTCPConnection(config);

    try{
    connection.connect();
    Log.i("XMPPChatDemoActivity","Connected to " + connection.getHost());
    isConnected = true;
    } catch (IOException e){
        Log.e("XMPPIOExceptionj", e.toString());
    } catch (SmackException e){
        Log.e("XMPPSmackException", e.toString()+" Host:"+connection.getHost()+"Port:"+connection.getPort());
    } catch (XMPPException e){
        Log.e("XMPPChatDemoActivity", "Failed to connect to "
                + connection.getHost());
        Log.e("XMPPChatDemoActivity", e.toString());
    }

    return isConnected;
    }
    };  
    connectionThread.execute();
    } 

我得到以下错误可能因为主机和端口分别被指定为null和0,即使我已正确分配它们。请帮助我 整理出这个连接概率。

08-12 22:10:20.496:    E/XMPPSmackException(4341):org.jivesoftware.smack.SmackException$NoResponseException Host:nullPort:0

2 个答案:

答案 0 :(得分:0)

您能否确认端口9090是XMPP协议的正确端口?默认安装Openfire将设置端口9090以用于访问基于HTTP的配置控制台。我建议您尝试连接到Openfire配置控制台主索引页面上指定的XMPP连接端口(下面列出&#34;服务器端口&#34;)。

以下内容取自Openfire配置控制台:

5222 客户端连接服务器的标准端口。连接可能加密也可能不加密。您可以更新此端口的安全设置。

答案 1 :(得分:0)

我认为你的主机地址也是错误的,你必须使用地址来连接openfire服务器。它必须是&#34; 127.0.0.1&#34;或者只是写&#34; localhost&#34;。并且端口是5222,以便能够从客户端与服务器进行通信。