我已经尝试从aSmack Android客户端连接到我的(本地托管的)Openfire XMPP服务器已有几个小时了,但仍然无法正常工作。
我得到了org.jivesoftware.smack.SmackException$ConnectionException
,就是这样。
代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SmackAndroid.init(getApplicationContext());
connect();
}
private boolean connect(){
XMPPConnection connection = new XMPPTCPConnection(HOST);
try{
connection.connect();
connection.login("user", "user");
}catch (Exception e){
e.printStackTrace();
}
return true;
}
服务器已启动并正在运行。
主机是我的服务器名称,也尝试过我的主机名,尝试过其他端口...也尝试过从另一个线程启动connect()方法。尝试使用登录名或匿名连接,但在此之前,在此之前抛出了异常:connection.connect();
任何帮助,高度赞赏。
我得到一个org.jivesoftware.smack.SmackException $ ConnectionException就是这样。
不,这不对。如果您在javadoc中查看以下内容ConnectionException
:
如果Smack无法连接到给定XMPP服务的所有主机,则抛出ConnectionException。可以使用getFailedAddresses()检索失败的主机,该主机将具有导致设置连接失败的异常,并可以通过HostAddress.getException()进行检索。
因此,调用ConnectionException.getFailedAddresses()
以检索列表并检查HostAddress.getException()
导致Smack无法连接到主机的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句