1 부 : 해결 당신이 정말로 클라이언트 연결을 추적 할 필요가 있지만, 문제를 해결할 것이다 당신이 요구하는지 만약 내가 당신의 질문에서 모르겠어요 경우 아래 문제
참조 2 부.
내가 문제를 되풀이 할 수 있는지 보도록하겠습니다. 채팅 앱을 작성하고 있지만 완전히 AJAX가 아닌 사이트를위한 것입니다 (즉, Gmail이 그렇듯이). 사이트에는 사용자가 다른 페이지로 연결되는 링크를 클릭 한 후 채널을 다시 설정해야하는 페이지 탐색 기능이 포함되어 있습니다. 사용자가 탐색 할 때 새 페이지가 렌더링되고 그 지점에서 새 토큰을 얻지 않으려 고합니다. 기존의 토큰 및 채널을 동일한 클라이언트 ID로 재사용하려고합니다.
맞습니다. 두 가지 대체 솔루션 중 하나는 쉽지만 좋지 않은 사용자 환경이 있습니다. 더 까다 롭지 만 결과가 훨씬 부드럽습니다.
쿠키에 토큰을 보존합니다. 페이지를 다시 렌더링 할 때 channel.create_channel을 다시 호출하는 대신 쿠키의 토큰을 사용하면됩니다. 토큰이 만료되면 사용자가 원래 페이지에 머문 것처럼 일시 오류 콜백을받습니다. 이 시점에서 channel.create_channel을 다시 호출하십시오. 이 문제는 Comet 연결 특성으로 인해 재 연결 속도가 느려질 수 있습니다 (최악의 경우 최대 10 초 이상).
iframe에서 채팅과 관련없는 전체 사이트를 감쌀 수 있습니다. 외부 iframe에 채널 생성 코드와 UI를 삽입하십시오. 이렇게하면 사용자가 탐색 할 때마다 다시 연결할 필요가 없습니다. 이렇게하면 탐색시의 가동 중지 시간을 피할 수 있습니다. orkut은 플로팅 div로이 기술을 사용합니다. 소량의 Firebug 조사에서 밝힙니다.
2 부 : 그것은 내가 오해하고 있는데 당신이 정말로 클라이언트 연결을 추적해야합니까 밝혀
경우 기능 요청 :
여부를 확인하기 위해 내장 된 방법이 아니다
클라이언트는 이제 클라이언트 ID로 식별되는 채널에 연결됩니다.
그러나 지금은 "존재"(채팅의 의미)를 추가하여 클라이언트가 특정 클라이언트 ID로 만든 채널에 연결하거나 연결을 끊을 때 게시물을 등록 할 수 있도록 노력하고 있습니다.또한 존재 여부를 "조사"하여 주어진 클라이언트 ID가 연결되었는지 여부를 쿼리 할 수 있습니다 (이 부분의 세부 사항에서 계속 작업 중임).
토큰 기반이 아니라 클라이언트 ID를 기반으로합니다.
아직 정확한 출시 날짜가 없지만 지금 말했듯이 나는 적극적으로 노력하고 있습니다.
그동안 클라이언트의 하트 비트 HTTP 요청을 사용하여 1 분마다 "안녕하세요, 아직 여기 있습니다"라는 앱을 사용할 수 있습니다. 2 분마다 실행되는 일종의 작업이 필요하며 비활성 상태로 체크인하지 않은 클라이언트를 표시하면이 데이터를 어딘가에 저장해야합니다.
와우, 대단한 답. 나는 앞으로 몇 시간 동안 그것을 소화 할 것이다. 감사합니다. 친절하게 생각합니다. -Alex –
정확하게 내 문제를 되풀이하여 제안한 솔루션이 적절한 해결 방법 인 것 같습니다. 나는 iframe 솔루션이 재미 있고 아마도 내 문제를 해결할 것이라고 생각합니다. –
모이 셰, 다음 릴리스에서 "존재감"을 얻으 려한다면 맛있는 칠면조 샌드위치를 사 드릴 것입니다. kthnx :) –