【问题标题】:Get SID & RID using strophe.js使用 strophe.js 获取 SID 和 RID
【发布时间】:2014-10-04 03:21:05
【问题描述】:

使用 strophejs 连接到 XMPP 服务器时如何获取 SID 和 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

但在 cmets 中,结果是“未定义”!

【问题讨论】:

    标签: javascript xmpp strophe


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多