我正在尝试创建一个帐户,然后登录到我的XMPP服务器。
我走了这么远:
try {
System.out.println("trying to register for XMPP");
XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder()
.setServiceName("jabber.org")
.setHost(AppConfig.XMPP_HOST)
.setPort(Integer.parseInt(AppConfig.XMPP_PORT))
.build();
XMPPTCPConnection connection = new XMPPTCPConnection(config);
connection.connect();
AccountManager accountManager = AccountManager.getInstance(connection);
accountManager.createAccount(name, password);
connection.login(name, password);
} catch (Throwable e) {
e.printStackTrace();
}
这是输出:
05-17 18:28:12.485 23624-24236/com.example.sqltest2 W/System.err﹕ org.jivesoftware.smack.SmackException$NoResponseException: No response received within packet reply timeout. Timeout was 5000ms (~5s)
05-17 18:28:12.555 23624-24236/com.example.sqltest2 W/System.err﹕ at org.jivesoftware.smack.SynchronizationPoint.checkForResponse(SynchronizationPoint.java:192)
05-17 18:28:12.555 23624-24236/com.example.sqltest2 W/System.err﹕ at org.jivesoftware.smack.SynchronizationPoint.checkIfSuccessOrWait(SynchronizationPoint.java:114)
05-17 18:28:12.555 23624-24236/com.example.sqltest2 W/System.err﹕ at org.jivesoftware.smack.SynchronizationPoint.checkIfSuccessOrWaitOrThrow(SynchronizationPoint.java:97)
05-17 18:28:12.555 23624-24236/com.example.sqltest2 W/System.err﹕ at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:815)
05-17 18:28:12.555 23624-24236/com.example.sqltest2 W/System.err﹕ at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:397)
05-17 18:28:12.555 23624-24236/com.example.sqltest2 W/System.err﹕ at com.example.sqltest2.RegisterActivity$4.doInBackground(RegisterActivity.java:281)
05-17 18:28:12.565 23624-24236/com.example.sqltest2 W/System.err﹕ at com.example.sqltest2.RegisterActivity$4.doInBackground(RegisterActivity.java:266)
05-17 18:28:12.565 23624-24236/com.example.sqltest2 W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-17 18:28:12.565 23624-24236/com.example.sqltest2 W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-17 18:28:12.565 23624-24236/com.example.sqltest2 W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-17 18:28:12.565 23624-24236/com.example.sqltest2 W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-17 18:28:12.565 23624-24236/com.example.sqltest2 W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-17 18:28:12.565 23624-24236/com.example.sqltest2 W/System.err﹕ at java.lang.Thread.run(Thread.java:841)
05-17 18:33:07.495 23624-24446/com.example.sqltest2 W/AbstractXMPPConnection﹕ Connection closed with error
org.jivesoftware.smack.SmackException: Parser got END_DOCUMENT event. This could happen e.g. if the server closed the connection without sending a closing stream element
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1126)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$200(XMPPTCPConnection.java:915)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:930)
at java.lang.Thread.run(Thread.java:841)
错误发生在
connection.connect();
我在Linux上使用Ejabberd。
日志说已经建立了成功的连接,所以我真的不知道怎么了。
问题可能是什么?
首先,您需要检查服务器是否支持带内注册。据我所知,很长一段时间以来,Jabber.org上的公共注册将被禁用。