2016-06-23 9 views
0

정확하게 이것을 올바르게 수행하는지 확인하십시오. 나는 외부의 CometD 서버 (긴 폴링을 통해)와 협력 할 Bayeux 클라이언트를 코딩하고있다. 내 클라이언트는 핸드 셰이크, 연결, 가입, 연결 순서로 요청을 보냅니다. 후자의 연결은 메시지를 사용할 수있을 때까지 지연됩니다. 메시지가 오면 서버 응답. 모든 것이 작동합니다. 내가 제대로하고 있니?CometD - 긴 폴링 연결을 설정하는 방법

+0

이 클라이언트는 어떤 언어입니까? CometD는 이미 JavaScript와 Java를 지원합니다. – sbordet

+0

자바 클라이언트. 실제로 CometD는 Java를 지원하며 불행히도 Java 6 인 클라이언트 라이브러리를 제공합니다. –

+0

CometD의 Java 클라이언트는 Java 7입니다. CometD를 사용하여 재 작성 할 필요가 없습니다. – sbordet

답변

1

일반적으로 클라이언트는 /meta/handshake/meta/connect 메시지로 서버에서 보낸 advice을 따라야합니다.

구독 메시지는 /meta/handshake 답장이 성공할 때까지 클라이언트가 보유해야합니다.

두 개 이상의 연결을 사용하려는 경우 특정 순서로 요청을 보내는 것이 정확히 정확하지 않습니다.

따라서 /meta/handshake 요청이 먼저 발생합니다. 성공적으로 /meta/handshake 답장을 보낸 후에는 /meta/subscribe/meta/connect을 두 연결에서 동시에 처리 할 수 ​​있습니다. 첫 번째 /meta/connect 응답 개최 여부를 여부

는 무관하다 : 클라이언트가 /meta/connect 메시지를 처리하고 /meta/connect 응답을 잡고 여부에 대해 서버에 영향을 미칠 수있는 메커니즘을 제공합니다. 클라이언트가 서버는 핸드 쉐이크 (그렇지 않으면 처음 "손실"될 수 있습니다 연결하고 클라이언트가와 연결된 미세이라고 생각 할 수 후 아직 살아 있는지 알고 싶어하기 때문에

CometD에서 첫 번째 /meta/connectadvice: { timeout: 0 } 함께 전송됩니다 서버가 아닌 경우). 또한 핸드 셰이크 후에 클라이언트 응용 프로그램에 /meta/connect 채널을 처음 알리는 역할도합니다.