如何从节点xmpp请求中获得响应



我学会了使用node-xmpp库向xmpp服务器发出请求。现在我可以像XMPP扩展文档中提到的那样发出请求。但是现在我想获得每个请求的回调响应(特别是XML响应)。

这里我使用了以下代码向另一个用户发出请求订阅(好友请求)

var net = require("net");
var xmpp = require('node-xmpp');
var cl = new xmpp.Client({ jid: "one@localhost",  password: "comet123$" })
cl.addListener('online', function(data) {
    console.log('Connected as ' + data.jid.user + '@' + data.jid.domain + '/' + data.jid.resource)
//making subscription
    var stanza = new xmpp.Element('presence',{
                      to: "hai@localhost",
                      from: "one@localhost",
                      type: "subscribe",
                             }).up
// making request
        cl.send(stanza);
    // nodejs has nothing left to do and will exit
    cl.end()
})

我想知道,如何得到响应结果。

我尝试了回调功能,就像这样,

cl.send(stanza, function(result){
    console.log(result);
});

var result = cl.send(stanza);

只返回true,

所以谁能告诉我我如何得到回调结果,我们通过使用node-xmpp库

对于XMPP消息没有回调或返回。您必须设置一个事件侦听器来接收从服务器返回的消息。添加:

cl.on('stanza', function(stanza){
  // Do something with the stanza
  // If you want to end after the first message you get back, move this here
  cl.end();
});

您可以从连接

获取原始数据
cl.connection.on("data", function (data) {
    console.log('data', data.toString('utf8'));
});

相关内容

  • 没有找到相关文章