如何使用JSJAC XMPP客户端查询花名册

如何使用JSJAC XMPP客户端查询花名册,xmpp,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_

如何使用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
  });

您需要有一个回调,在返回花名册时触发。为了完整起见,还需要设置一个错误处理程序,以防IQ错误被返回或超时。

很抱歉对这样的老问题发表评论,但这会在“JSJAC花名册”上的谷歌上弹出一个结果,上面的答案对我不起作用。我不知道JSJaC API中是否发生了变化,但是我收到了iq错误“服务不可用”。我不得不使用以下代码:

var rosterRequest = new JSJaCIQ();
rosterRequest.setType('get');
rosterRequest.setQuery(NS_ROSTER);
connection.send(rosterRequest);

(因此没有域设置和id设置,只有类型和名称空间)。

我刚刚更改了行:花名册.setIQ(null,'get','花名册1');使用花名册.setIQ(con.domain,'get','floster_1');现在它可以工作了。我已经有了一个IQhandler来处理响应。