2016-06-29 5 views
0

私はstrophe.jsを使って簡単なIM(web)を構築します。strophe.js、私はBoshセッションを復元するためにattach()を使いますが、 'Status'はCONNFAILとDISCONNECTEDにアタッチされます。

私はindex.html(ログイン用)とmyChat.html(メインチャットビュー)の2ページを持っています。

そして私はindex.htmlの中JIDとパスワードによってopenfireサーバーにログインするときそして、私はコールバックで 'のonConnect' COOKIEに取り除くJID、SIDを、保存、およびmyChat.html

に行く

connection = new Strophe.Connection(BOSH_SERVICE);  
connection.connect($("#inputName").val()+"@openfireserver", $("#inputPassword").val(), onConnect); 

myChat.htmlでは、connection.attach()を使用してBOSHセッションを復元します。

コールバックでまず
var jid=$.cookie('jid'); 
    var sid=$.cookie('sid'); 
    var rid=$.cookie('rid'); 
    connection = new Strophe.Connection(BOSH_SERVICE); 
    connection.attach(jid,sid,parseInt(rid,10)+1,onConnectAttach); 

、 'onConnectAttach'、ステータス== Strophe.Status.ATTACHED、 しかし1-3分を待って、ステータスがStrophe.Status.CONNFAILとStrophe.Status.CONNECTEDに変わります

サーバを再接続するためにconnection.connect()を使用すると、セッションは常に維持されます。

私は間違いをどこで理解できないのですか?なぜ私はattach()を使った後に状態が変わるのですか?

答えて

0

connection.attach(jid、sid、parseInt(rid、10)+1、onConnectAttach);

"attach"機能に関するいくつかの質問を見て、誰かが「rid」を追加しなければならないと言っているので、間違っています。

しかし、私のテストで、私はする必要はありませんthat.just:

connection.attach(jid,sid,rid,onConnectAttach); 
関連する問題