Xmpp 使用asmack 4.0.2连接到openfire服务器时出错
我试图使用Asmack library 4.0.2连接到Openfire服务器。即使我为端口提供了正确的ip地址,我也无法连接到服务器Xmpp 使用asmack 4.0.2连接到openfire服务器时出错,xmpp,asmack,Xmpp,Asmack,我试图使用Asmack library 4.0.2连接到Openfire服务器。即使我为端口提供了正确的ip地址,我也无法连接到服务器 public static final String HOST = "192.168.1.100"; public static final int PORT = 9090; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInsta
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();
}
您能确认端口9090是XMPP协议的正确端口吗?Openfire的默认安装将端口9090设置为用于访问基于HTTP的配置控制台。我建议您尝试连接到服务器端口下面列出的Openfire配置控制台的主索引页上指定的XMPP连接端口
以下内容摘自Openfire配置控制台:
5222客户端连接到服务器的标准端口。连接可以加密,也可以不加密。您可以更新此端口的安全设置。我认为您的主机地址也错了,您必须使用该地址连接openfire服务器。它必须是127.0.0.1或只写localhost。端口是5222,可以从客户端到服务器进行通信。您是否尝试过使用3参数构造函数?第二天,我用5222试了试,效果很好。可能是第一次它无法工作,因为我在将端口从9090更改为5222后没有重新启动电脑和服务器。无论如何,感谢您的帮助:@fpsColton我在将android虚拟设备连接到xmpp服务器时遇到了问题。我用这个连接到xmpp,我得到了,你能告诉我这个的解决方案吗?@devil,我从来没有使用过smack,我只是在猜测,但从我所看到的来看,ConnectionConfiguration的构造函数似乎无法解析主机名“pc”。我会直接使用运行xmpp服务器的pc的IP。127.0.0.1将不起作用,循环回到avd@fpsColton感谢您的关注,通过solutionAlways发布异常的完整堆栈跟踪解决了此问题!
08-12 22:10:20.496: E/XMPPSmackException(4341):org.jivesoftware.smack.SmackException$NoResponseException Host:nullPort:0