我学会了使用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'));
});