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