使用模块:npm install node-xmpp
var XMPP = require('node-xmpp');
var xmpp = new XMPP.Client({
jid : 'jid',
password : '123456',
host:'xxxx',
port : 5222
});
xmpp.on('error', function(err) {
console.error(err);
});
xmpp.on('online', function() {
console.log('Yes, I\'m connected!');
console.log('-------------------------');
xmpp.send('<iq id="vcard00" type="get"><vCard xmlns="vcard-temp"></vCard></iq>');
});
xmpp.on('stanza', function(stanza) {
console.log(stanza.toString());
if(stanza.is('iq') && stanza.attrs.type !=='error' ) {
...............
} else if(stanza.attrs.type =='error'){
callback('upd vcard error!')
}
})
//构造xml Element对象:
var data = new XMPP.Element('iq',{id:'change00',type:'set',to:name[1]})
.c('query',{xmlns:'jabber:iq:register'}) //创建新结点
.c('username').t(name[0]) //创建新结点并赋值
.up() //回到上层结点
.tree(); //获取根节点
var tel = data.getChild('vCard').getChild('TEL');
tel.text('test'); //给已有结点赋值
var str = new XMPP.Element('iq',{type:'set', id:'vcard01'})
.cnode(data.getChild('vCard')) //将data的vCard结点作为子结点
.tree();