2011-08-10 4 views
1

BOSH 및 Strophe를 통해 XMPP를 사용하여 실시간 알림 시스템을 구현하고 있지만 문제가 있습니다. 내 웹 사이트에 로그온 할 때 백엔드에서 BOSH 연결을 설정하고 JID, SID 및 RID를 쿠키로 저장합니다. 페이지가 다시로드되면 쿠키에서 데이터를 가져 와서 Strophe의 첨부 기능을 사용하여 해당 세션에 연결합니다. 나는 내가 붙어 있다고 말하는 콜백 상태를 얻는다.Strophe를 사용하여 BOSH 세션에 연결하는 데 문제가 있습니다.

내가 직면 한 첫 번째 문제는 요청이 2 초마다 전송된다는 것입니다.

요청 URL : HTTP : // localhost를 : 7070/HTTP-바인드/
요청 방법 : POST
상태 코드 : 200 OK

요청 헤더
는 이러한 요청 헤더입니다 수락 */*
수락 문자셋 : UTF-8 *; Q = 0.5
수락 인코딩 : GZIP, 폐, SDCH
수용 - 언어 : SV-SE를 SV; Q = 0.8, 엔 - 유 S, Q = 0.6, 욕실, Q = 0.4
캐시 제어 : 최대 사용 기간 = 0
연결 : 연결 유지
콘텐츠 길이 : 77
쿠키 : JSESSIONID = ibxwvm3ophp8을; jiveforums.admin.logviewer = "debug.size = 0 & info.size = 0 & warn.size = 0 & error.size = 0"
호스트 : 로컬 호스트 : 7070
원산지 : HTTP : // * **
리퍼러 : HTTP : // * ** /flXHR/flXHR.swf
사용자 에이전트 : 모질라/5.0 (매킨토시, 인텔 맥 OS X 10_6_7) AppleWebKit/게코 같은 535.1 (KHTML,) Chrome/13.0.782.107 Safari/535.1 content-type : application/x-www-form-urlencoded

,363,210

양식 데이터
< 몸을 제거 : '3007'의 xmlns

응답 헤더
콘텐츠 길이 : 57
콘텐츠 유형 : 텍스트/XML을; 문자셋 = UTF-8
서버 : 부두 (7.0.2-SNAPSHOT)

응답 내용을 볼 수 없으므로 그 원인을 알 수 없습니다. 보내지는 양식 데이터가 유효하지 않거나 불완전한 XML처럼 보입니다. 원인이 무엇입니까? 아니면 Chrome이 디버거에서 형식을 지정하는 것입니까?

다른 문제는 내가 페이지를 새로 고침 할 때입니다. 나는 하나의 RID를 증가시키고이를 쿠키에 저장하는 윈도우 객체에 unload 이벤트를 바인딩했습니다.그러나 페이지가 다시로드 될 때 내가 BOSH 세션에 첨부했습니다 있다고하지만, 나는 다음과 같은 오류 메시지가 얻을 :

POST http://localhost:7070/http-bind/ 404 (Not Found) (localhost)

Uncaught Error: 16, ioError, An error occured preventing completion of the request. (flensed.js)

다음 요청이 발생합니다을 404 (찾을 수 없음) 대신 404 (잘못된 SID.)를 입력하고 70 초마다 반복합니다.

다른 누구도이 문제를 파악하고 해결 방법을 알고 있습니까? 나는 좌절했다! 사전에

감사합니다,
피에르

+0

해결책을 얻었습니까? – Hunt

+0

미안하지만 기억이 안납니다, 헌트. 아마도 그렇지 않습니다. 나중에 구현을 포기했습니다. –

답변

1

당신은 구현, 아직도 당신이 언급 한 첫 번째 문제는 클라이언트 서버가 있음을 알 수있는 서버에 대한 위해의 Openfire 연결에서 할 연속 ping이 단순히 포기했지만 클라이언트가 실행 중입니다. 두 번째 오류는 정확하게는 아니지만 아마도 의사 소통을 방해하고 정상적으로 종료하지 않을 때 발생합니다. 이로 인해 스트립 클라이언트는 포트 바인딩에 몇 가지 문제가 발생할 수 있습니다. 또한 위에서 언급 한 ping 메커니즘으로 인해 반복해서 문제가 발생합니다. window.onbeforeunload 이벤트가 트리거 된 후에 connection.disconnect 메소드를 호출 해 볼 수있었습니다. 이것은 정상적인 종단을 보장하여 적절한 재접속을 보장합니다.