Strophe.attach не работает - я использую openfire локально - PullRequest
0 голосов
/ 18 апреля 2011

Я пытаюсь внедрить XMPP-клиент. Я использую BOSH Connection Manager и могу запустить Strophe.connect, но не Strophe.Attach. Я пытался увеличить RID, но безрезультатно. Любая помощь, пожалуйста? Здесь нет ошибки, но Strophe.Status.CONNECTED никогда не достигается с помощью метода присоединения, поэтому я не могу отправить IQ или Presence.

Вот мой код пытаться {

    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, и теперь статус «Подключен» работает. Но соединение разрывается мгновенно. Я даже не могу получить список.

Возможно, мы можем сделать все с помощью Connection.attach () так же, как с connection.connect (), верно?

Есть мысли?

Ответы [ 3 ]

1 голос
/ 03 мая 2011

Вы используете последнюю версию библиотеки Strophe?В версии, которую я использую, я вижу, что статусом могут быть следующие значения:

Status: {
    ERROR: 0,
    CONNECTING: 1,
    CONNFAIL: 2,
    AUTHENTICATING: 3,
    AUTHFAIL: 4,
    CONNECTED: 5,
    DISCONNECTED: 6,
    DISCONNECTING: 7,
    ATTACHED: 8
}
1 голос
/ 10 мая 2011

Убедитесь, что вы преобразуете cookieRid в число, используя новый номер (cookieRid). В противном случае, когда вы сделаете +1, вы получите "#### 1".

Вы можете проверить это сами в Javascript:

var s = "123";

alert(s+1); // "1231" and not "124"

Кроме того, как ответил Эрик, существует статус ATTACHED, поэтому вам нужно обработать это событие.

1 голос
/ 30 апреля 2011

Измените строку:

if (status === Strophe.Status.CONNECTED)

... на ...

if (status ===Strophe.Status.CONNECTED || status === Strophe.Status.ATTACHED)

...