我如何获得SID&使用strophejs连接到XMPP服务器时的RID?我使用Ejabbered作为XMPP服务器。
这是我的代码
$(document).bind('connect', function (ev, data) {
var conn = new Strophe.Connection('http://localhost:5280/http-bind');
conn.connect(data.jid, data.password, function (status) {
if (status === Strophe.Status.CONNECTED) {
$(document).trigger('connected');
} else if (status === Strophe.Status.DISCONNECTED) {
$(document).trigger('disconnected');
}
});
Gab.connection = conn;
});
$(document).bind('connected', function () {
---------------------------------
---------------------------------
console.log(Gab.connection.jid); // Got jid
console.log(Gab.connection.rid); // Value is undefined
console.log(Gab.connection.sid); // value is undefined
});
我试过上面的代码。但是未定义为价值。
我查过这个问题, XMPP: retrieving BOSH Session ID and RID
但在那里的评论中,'undefined'就是结果!
答案 0 :(得分:5)
通过向connection.xmlOutput添加一个函数,我从strophe连接中获取RID和SID。这使得能够在发送之前查看传出节。这是一个例子:
connection.xmlOutput = function (e) {
if (IS_CONNECTED) {
LAST_USED_RID = $(e).attr('rid');
LAST_USED_SID = $(e).attr('sid');
log(' XMLOUTPUT INFO - OUTGOING RID=' + LAST_USED_RID + ' [SID=' + LAST_USED_SID + ']');
//log(' XMLOUTPUT INFO - OUTGOING XML = \n'+e.outerHTML);
//set some variables to keep track of our rid and sid
}
};
您也可以从连接._proto
访问RID和SID属性,例如:
connection._proto.rid