안녕하세요.

 

C2DM의 Third-Party Application Server 방식으로 구현된 서비스의 로그를 보면 MismatchSenderId가 발생하고 있습니다.

 

http://code.google.com/intl/ko/android/c2dm/#push 에는 "MismatchSenderId"가 아래처럼 정의되어 있습니다.

MismatchSenderId — The sender_id contained in the registration_id does not match the sender id used to register with the C2DM servers

 

C2DM 서버에 등록된 sender_id와 registration_id에 사용된 sender_id가 동일하지 않다는건데

안드로이드 전문 개발자가 아니다보니 제대로 이해했는지 모르겠으나 sender_id는 1개뿐이 없어서 그럴 일은 없는데 이상하네요...

 

 

도움이 될지 몰라 참고 하시라고 이 질문은 그대로 놔두겠습니다.^^

다른 케이스들도 있을듯 싶은데 몇 가지를 테스트 해 본 결과...

 

위에 적었듯이 registration_id를 발급받을 때 사용한 SenderId와

Auth Token을 받을때 사용한 SenderId가 다르면 100% MismatchSenderId가 발생하더군요.

 

예를들어, 클라이언트 앱에서 A단말기의 등록Id를 aaa@gmail.com의 SenderId를 이용해서 registration_id를 생성 후...

C2DM에서 메시지를 전송할 때에는 bbb@gmail.com라는 SenderId를 이용해서 전송하는 경우 발생했습니다.

 

제 경우에는 살짝 이해가 안되는 부분은 SenderId가 1개뿐이 없고...

DB에 저장된 값만을 이용하기때문에 위와 같은 현상이 발생하면 안되는데 이해가 안되더군요^^

 

AuthToken의 경우 특정주기(대략 1시간)로 값이 갱신되던데..

혹시나 싶어서 몇일전에 사용되었던 과거의 AuthToken 값을 이용해서 전송해봐도 MismatchSenderId가 발생하지는 않더군요.^^;;;

누군가 저도 모르게 SenderId를 변경했었거나 DB에 엉뚱한 값이 들어갔거나...

아니면 위외에도 다른 케이스가 있을지 모르겠습니다.