나는 간단한 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()를 사용하면 상태가 변경되는 이유는 무엇입니까?