2011-12-19 4 views
2

AppEngine 채널 API에서 채널은 2 시간 후에 자동으로 닫힙니다. 우리는 onError 이벤트에서 채널에 다시 참여하여이를 처리합니다.AppEngine 채널 API에서 누락 된 메시지 방지하기

채널을 다시 연결하는 동안 메시지를 보내면 메시지가 누락 될 수 있습니까?

우리 시나리오 : 우리는 약속을 API를 통해 다른 곳에 예약하는 약속 스케줄링 시스템을 가지고 있습니다. 도착한 일정에 따라 새로운 약속을 표시하기 위해 채널을 사용합니다. 그러나 채널이 닫히고 다시 연결될 때 예약 된 경우 일부 약속을 놓칠 수 있습니다. Channel API가이를 방지합니까?

답변

2

약간의 배경 : 채널 API의 "클라이언트 ID"는 일시적인 XMPP 끝점을 만드는 데 사용됩니다. 주어진 클라이언트 ID는 항상 동일한 일시적인 끝점에 매핑됩니다. 따라서 동일한 클라이언트 ID로 작성된 채널에 토큰을 사용하여 다시 연결하면 동일한 엔드 포인트에 다시 연결됩니다. 이 때문에 채널을 재생성하기 전에 클라이언트가 보낸 메시지를 수신하는 동작이 나타날 수 있습니다. 그러나 수신자가없는 채널로 메시지가 전송 될 때 메시지를 적극적으로 대기열에 보관하지 않습니다.

새 토큰을 반환하는 동일한 응답의 일부로 약속의 최신 목록을 반환 할 수 있습니까?

+0

예, 우리는 그렇게 할 계획입니다. 정보 주셔서 감사합니다. –

0

채널을 다시 연결하지 않아도 완전히 새로운 채널을 만들 수 있습니다. 예, 메시지가 누락 될 수 있습니다. 그러나 닫힌 채널로 메시지를 보내려고하면 예외가 발생합니다.

관련 문제