2012-05-29 2 views
2

AppEngine은 채널에 메시지를 보낼 때 오류가있을 때마다 ChannelFailureException을 발생시킵니다. 채널이 연결되지 않은 경우.appengine ChannelFailureException이 dev에 throw되지 않았습니다.

dev 서버가이 예외를 throw하지 않는 것처럼 보입니다.

com.google.appengine.api.channel.dev.ChannelManager sendMessage 
WARNING: Skipping message to unconnected channel: <clientId> 

이 경고를 생성 할 것으로 보인다 : 그것은 콘솔에 경고 표시하지

그러나 com.google.appengine.api.channel.dev.LocalChannelFailureException, 실제의 예외 (즉, 를 com.google.appengine.api.channel.ChannelFailureException)가 throw되지 않습니다.. 어떤 신체가 개발 중에이 예외를 테스트하는 방법을 알고 있습니까?

답변

1

채널이 연결되어 있지 않고 메시지를 보내려는 경우 오류가 발생하지 않습니다.

잘못된 형식의 클라이언트 ID 또는 메시지를 제공하거나 메시지를 전송할 수 없도록 채널 인프라에 문제가있는 경우 ChannelFailureException이 발생합니다.

+0

좋아, 그래서 dev에 환경에서만 존재하는 위의 동작입니다

message = ChannelMessage(clientId, message); 

의를 만들려고했기 때문에인가? ** WARNING : 연결되지 않은 채널로 메시지 건너 뛰기 : 이 표시되는 이유에 대해 자세히 설명해주십시오. **. 이 경고는 채널이 연결되지 않았을 때 (즉, 사용자가 로그 아웃 한 경우)에만 표시됩니다. clientId와 메시지는 올바른 형식입니다. 사용자가 로그인 한 경우 동일한 clientId 및 메시지를 사용하여 경고없이 메시지가 전송됩니다. –

+0

경고는 단지 정보 용입니다. 그것은 생산에서 일어나지 않을 것입니다. –

+0

오케이. 채널 인프라 스트럭쳐가 실패하면 (자) 예외가 슬로우됩니다. 그렇게 될 때 우리가 할 수있는 일은 무엇입니까? 우리는 메시지를 보내려고 다시 시도해야합니까? 그리고 예외가 dev에 던져진 이후로, 나는 (가능한 경우) 그것이 예외를 던질 때까지 업로드하고 시도하는 것이 유일한 방법이라고 생각한다. –

0

이 상태는 토큰과 clientId가 섞여있을 때도 나타납니다. 내 경우에는 내가이

message = ChannelMessage(token, message); 

대신

String token = channelService.createChannel(clientId); 
관련 문제