2016-06-29 3 views
0

나는 간단한 IM (웹)을 만들기 위해 strophe.js를 사용한다.strophe.js, 나는 Bosh 세션을 복원하기 위해 attach()를 사용하지만 'Status'는 CONNFAIL에 연결되고 DISCONNECTED에 연결됨

2 페이지 : index.html (로그인 용) 및 myChat.html (기본 채팅보기).

그리고 index.html을에 JID와 비밀번호에 의해 오픈 파이어에 로그인 할 때 그럼 난 콜백 '으로 onConnect'쿠키 제거 JID, SID를 저장하고 myChat.html

로 이동

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

if (status == Strophe.Status.CONNECTED) { 
    console.log("success"); 
    connected = true; 
    $.cookie('jid', connection.jid); 
    $.cookie('sid', connection._proto.sid); 
    $.cookie('rid', connection._proto.rid); 
    location.href='myChat.html'; 
} 

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'를 추가해야한다고 말하기 때문에 잘못된 것입니다.

하지만, 내 테스트에서, 내가 할 필요가 없습니다 알아 방금 :

connection.attach(jid,sid,rid,onConnectAttach); 
관련 문제