【发布时间】:2015-09-30 15:18:27
【问题描述】:
我正在安卓上制作一个 IM 客户端。我正在使用在 EC2 上运行的 openfire 服务器实例。我目前正在尝试使用我的应用注册新用户。连接工作正常,但是当我调用 AccountManager.createAccount(email, password, mymap) 时,我遇到了异常。
即下面的 XMPPErrorExecption 是我的堆栈跟踪
10-01 02:58:54.443 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: bad-request - modify
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:213)
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at org.jivesoftware.smackx.iqregister.AccountManager.createAccount(AccountManager.java:272)
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at com.example.eoin_a.im_app20.Utils.ConnectionManager.registerDevice(ConnectionManager.java:109)
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at com.example.eoin_a.im_app20.Models.RegisterModel$1.call(RegisterModel.java:110)
10-01 02:58:54.444 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at com.example.eoin_a.im_app20.Models.RegisterModel$1.call(RegisterModel.java:93)
10-01 02:58:54.445 1747-3673/com.example.eoin_a.im_app20 W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
我还在我的 openfire 服务器上的日志中收到“用户尝试使用未知收件人对此服务器进行身份验证”消息。我不太清楚这意味着什么。
我也在地图中发送服务器所需的所有额外参数。
下面是我用来创建连接的代码
config = XMPPTCPConnectionConfiguration.builder()
.setHost(HOST)
.setPort(PORT)
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled)
.setServiceName(HOST)
.setUsernameAndPassword(ACCOUNT, PASS)
.build();
conn = new XMPPTCPConnection(config);
conn.setPacketReplyTimeout(10000);
accman = AccountManager.getInstance(conn);
我在服务器上使用默认的 xmpp.domain,这似乎是服务器设置中的私有 IP 地址。我不确定这是否会导致问题。如果有人知道为什么这可能对我不起作用,我将不胜感激。谢谢!
【问题讨论】:
-
任何人都对这个领域有任何了解。我被难住了
标签: android xmpp openfire smack