java - 尝试注册 XMPP

标签 java android xmpp ejabberd

我正在尝试创建一个帐户,然后登录到我的 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。

日志显示已成功建立连接,所以我真的不知道出了什么问题。

可能是什么问题?

最佳答案

首先你需要检查服务器是否支持In-Band Registration .据我所知,在 jabber.org 上的公共(public)注册是 disabled许久。

关于java - 尝试注册 XMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289554/

相关文章:

java - jackson API的实现

java - JDT如何知道父类(super class)的全名

java - 如何在 libgdx 中计算按钮按下和按钮释放之间的时间

android - 未调用 Smack 消息监听器且连接不稳定

ios - XMPPRoster 不会将新好友发布到 XMPP 服务器

ios - XEP-0055 错误 400 错误请求?

java - 审计模型中的属性变化

java - Android 后台下载多个文件

java - Android - 移动布局或动画项目到购物车

java - Android Parcelable 无法实例化类型