【发布时间】:2015-07-31 16:59:13
【问题描述】:
我是 ejabberd 的新手,我正在尝试创建一个 java 程序,只是为了对服务 ejabberd 进行一些测试,但始终从服务器获得相同的响应。
服务器正在运行,因为我可以尝试使用两个 pidgin 客户端。
我正在尝试遵循以下示例 http://xmpp.org/extensions/xep-0016.html
关于代码
ConnectionConfiguration cc = new ConnectionConfiguration("ip_server", 5222, "domain_defined_in_cfg");
// In ejabberd.cfg -> {hosts, ['domain_defined_in_cfg']}
cc.setDebuggerEnabled(true);
cc.setSASLAuthenticationEnabled(true);
XMPPConnection con = new XMPPConnection(cc);
System.setProperty("smack.debugEnabled", "true");
XMPPConnection.DEBUG_ENABLED = true;
try {
SASLAuthentication.supportSASLMechanism("PLAIN", 0);
con.connect();
//This line returns
/*
No response from the server.:
at org.jivesoftware.smack.SASLAuthentication.bindResourceAndEstablishSession(SASLAuthentication.java:430)
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:331)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:349)
*/
//con.login("user_admin", "password_user_admin");
Packet packet = new Packet() {
@Override
public String toXML() {
//Sample of iq request
StringBuilder sb = new StringBuilder("<iq type=\"get\" to=\"ip_server\">");
sb.append("<query xmlns=\"jabber:iq:version\"/>");
sb.append("</iq>");
return sb.toString();
}
};
con.sendPacket(packet);
} catch (XMPPException xe) {
xe.printStackTrace();
return;
}
当我发送代码或其他类似的 iq 请求时
<iq from='user@domain.com' type='get' id='getlist1'>
<query xmlns='jabber:iq:privacy'/>
</iq>
到服务器,我总是收到相同的响应
<iq id="getlist1" from="domain.com" type="error">
<error code="503" type="CANCEL">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>
只尝试遵循http://xmpp.org/extensions/xep-0016.html的示例1
登录可能是个问题,但无论如何,我更感兴趣的是为什么我不能向服务器发送消息。或者,我怎样才能以其他方式发送消息? (我也用腻子检查过)
有什么想法吗?
谢谢!
【问题讨论】: