如何使用JSJAC XMPP客户端查询完整名单?我曾尝试下面这个功能,但它不工作:如何使用JSJAC XMPP客户端查询名单
function getRoster(con){
var roster = new JSJaCIQ();
roster.setIQ(null, 'get', 'roster_1');
roster.setQuery(NS_ROSTER);
con.send(roster);
}
如何使用JSJAC XMPP客户端查询完整名单?我曾尝试下面这个功能,但它不工作:如何使用JSJAC XMPP客户端查询名单
function getRoster(con){
var roster = new JSJaCIQ();
roster.setIQ(null, 'get', 'roster_1');
roster.setQuery(NS_ROSTER);
con.send(roster);
}
相反con.send的,请尝试:
con.sendIQ(roster, {result_handler: function(aIq, arg) {
var node = aIq.getQuery()
// do something with roster
});
您必须返回名册时触发回调。要完成,还要设置error_handler,以防IQ错误返回或超时。
对这样一个老问题发表评论感到抱歉,hoewever在'JSJAC roster'中弹出了#1的结果,上面的回答对我没用。我不知道在JSJaC API中是否发生了变化,但是我收到了iq错误的'service-unavaliable'。我不得不使用这个代码:
var rosterRequest = new JSJaCIQ();
rosterRequest.setType('get');
rosterRequest.setQuery(NS_ROSTER);
connection.send(rosterRequest);
(所以没有域设置和没有id设置 - 只是类型和命名空间)。
我刚换了一行: roster.setIQ(null,'get','roster_1'); 与 roster.setIQ(con.domain,'get','roster_1'); 它现在有效。我已经有一个IQhandler来处理响应。 – Adnan 2010-04-03 10:16:21