你怎么能用simple-xmpp / node-xmpp获得Jabber用户的名单?

时间:2013-10-15 11:47:59

标签: node.js xmpp openfire webrtc

我正在使用'simple-xmpp'模块,我正在尝试在登录后获取Jabber用户的名单。连接到Jabber服务器(在我的情况下是Openfire)并发送消息可以正常工作。当我尝试执行xmpp.getRoster()调用时,它只返回'undefined'。

这是我的代码。我想我应该得到某种JSON对象。我究竟做错了什么?谢谢。

var config = require('../lib/config');
var xmpp = require('simple-xmpp');

xmpp.on('online', function() {
  console.log('Yes, I\'m connected!');

  console.log(xmpp.getRoster());
});

xmpp.on('error', function(err) {
   console.error(err);
});

xmpp.on('chat', function(from, message) {
console.log(from + " said: " + message);
});


exports.connect = function (username, password) {
   xmpp.connect({
       jid         : username,
       password    : password,
       host        : config.jabberHost,
       port        : config.jabberPort
   });
};

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但我偶然发现它寻找其他东西。

我是通过使用node-xmpp-client和来自node-xmpp-core的ltx并发送以下内容来实现的:

client.send(new ltx.Element('iq', { from: 'user@domain.com', type:'get', id:'roster_1'})
    .c('query', { xmlns: 'jabber:iq:roster' }).t().up()
  )
  )