0

XMPP クライアントを実装しようとしています。BOSH 接続マネージャーを使用しており、Strophe.connect は実行できますが、Strophe.Attach は実行できません。RID をインクリメントしようとしましたが、効果がありません。何か助けてください。ここにはエラーはありませんが、attach メソッドを介して Strophe.Status.CONNECTED に到達しないため、IQ またはプレゼンスを送信できません。

これが私のコードです {

    var cookieJid = $.cookie("jid");
    var cookieSid = $.cookie("sid");
    var cookieRid = $.cookie("rid");

    var connt = new Strophe.Connection("http://localhost:7070/http-bind/");

    connt.attach(cookieJid, cookieSid, cookieRid + 1, function(status)
    {

        if (status === Strophe.Status.CONNECTED)
        { 
            alert ("hola connected");
            $("#userName").append("hola connected :  " + connt.jid );

            var iq = $iq({type: 'get'}).c('query', {xmlns: 'jabber:iq:roster'});
            connt.sendIQ(iq, handleRoster);
            connt.send($pres());
        }
    });

}
catch (e)
{
    $("#userName").append("Pinky error is " + e);

}

編集

エリックとチャーリーに感謝します。

そこで、最新の Strophe.js を使用したところ、Attached ステータスが機能するようになりました。しかし、接続はすぐに切断されます。名簿を取得することさえできません。

connection.connect() の場合と同じように、Connection.attach() を使用してすべてのことを行うことができますよね?

何かご意見は?

4

3 に答える 3

1

最新のStropheライブラリを使用していますか?私が使用しているバージョンでは、ステータスは次の値である可能性があります。

Status: {
    ERROR: 0,
    CONNECTING: 1,
    CONNFAIL: 2,
    AUTHENTICATING: 3,
    AUTHFAIL: 4,
    CONNECTED: 5,
    DISCONNECTED: 6,
    DISCONNECTING: 7,
    ATTACHED: 8
}
于 2011-05-03T15:42:12.567 に答える
1

行を変更します。

if (ステータス === Strophe.Status.CONNECTED)

...に...

if (ステータス === Strophe.Status.CONNECTED || ステータス === Strophe.Status.ATTACHED)

于 2011-04-29T20:59:23.793 に答える