得到SID &使用strophe.js的RID

Get SID & RID using strophe.js

本文关键字:js RID strophe 使用 SID 得到      更新时间:2023-09-26

如何获得SID &RID连接到使用strophejs的XMPP服务器时?我使用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:检索BOSH会话ID和RID

但是在那里的注释中,'undefined'是结果!

通过向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

这可能与:https://github.com/jcbrand/converse.js/issues/180