node.js - 如何使用 simple-xmpp/node-xmpp 获取 Jabber 用户名册?

标签 node.js xmpp openfire webrtc

我正在使用“simple-xmpp”模块,我试图在 Jabber 用户登录后获取他的名册。连接到 Jabber 服务器(在我的例子中是 Openfire)并发送消息工作得很好。当我尝试执行 xmpp.getRoster() 调用时,它只是返回“未定义”。

这是我的代码。我想我应该得到某种 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
   });
};

最佳答案

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

我通过使用 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()
  )
  )

关于node.js - 如何使用 simple-xmpp/node-xmpp 获取 Jabber 用户名册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19380456/

相关文章:

javascript - Express.js : Convert req. body 变成 POST 编码的字符串

javascript - 如何在 app.use express 中配置 formidable?

node.js - 在node-xmpp中检索名册

xmpp - openfire 是否支持用户/联系人阻止?

ios - 由远程对等 gcdasyncsocket 关闭的套接字

node.js - 引用存储在 Linux/Unix 中的 UI5 控件失败,而在 Windows 上同样有效

node.js - SSL:错误:0906D064:PEM 例程:PEM_read_bio:错误的 base64 解码

聊天应用程序 : pubsubhubbub vs xmpp

windows - 通过命令行通过 XMPP 服务器发送自动警报? ( Windows )

ios - 启用 XMPPMessageCarbons 不起作用