마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

gcm 서버 구현해보신분~ 이런 문제 어떻게 하셨나요 ㅠ

0 추천
도와주세요. 구체적으로 사례를 적어봅니다.
실제 gcm 푸시 서버를 구축해보신 분이면 잘 아실것 같은데요. 
(현재 php, mysql로 구성했고. php curl로 통신하고 있습니다.)
 
-증상- 
 
400개중 / 7개 계정이 registration_id (regid)가 2개씩 등록되고 있습니다.
 
id  구글계정                         regid
 
1   aaa111@gmail.com   APA91bF...4A   <==  
2   diek23@gmail.com   APA91bH...og
3   ff3133@gmail.com   APA91bG...Eg
...................................
...................................
12  aaa111@gmail.com   APA91bH..._Q   <==
13  dffff3@gmail.com   APA91bG...4g
...................................
...................................
 
 
이럴 경우 단말기가 2대라는 것을 예상할 수 있는데요.
400명 중 1~2명정도라면 이해가 되지만
7명이나 단말기가 2개라는 것은 이해가 되지 않습니다.
 
그렇다면 제가 잘못 처리했거나 놓친 부분이 있을거 같은데요.
아무튼 문제는 두regid에 푸시를 날리면 모두 success가 뜬다는 겁니다.(위에서 1번과 12번)
 
저와 동일한 증상을 겪으신 분이 있는가요. 
7명이나 단말기가 2개라는 것이 맞을까요?
한 단말기에 두번 연속 푸시(알림)가 날라가는 문제는 없겠죠?
 
 
- 처리한 로직 -
 
현재,
등록시 db에 registration_id가 있으면 중복 등록되지 않도록 처리
 
responsec(result값) 처리
 
canonical_ids  기존 등록된 regid를 리턴되는 regid로 수정
NotRegistered  앱이 삭제된 경우이므로 regid 삭제
Unavailable    유효하지 않은regid이므로 regid 삭제  
 
- 추가내용 -
 
"OS 가 업데이트 되었을 때나, Factory Reset(공장초기화) 이 되었을 때도 다시 등록해야 한다.
App 을 update 할 때마다 device 를 다시 등록해줘야 한다."
 
간혹 gcm 서버에서 regid를 갱신하는 것 같습니다. 그렇다할지라도 전에 쓰던 id는 canonical_ids를
반환하기에 문제가 없을 것으로 보이는데요.
 

 

익명사용자 님이 2015년 3월 3일 질문

2개의 답변

+1 추천
왜 한 기기에서만 사용한다고 생각하시는거죠? 요즘에 기기 두 개 갖고 다니는 사람이 얼마나 많은데요 ;;
쎄미 (162,410 포인트) 님이 2015년 3월 3일 답변
네. 그렇다면 제가 고민할 필요가 없겠는데.. 괜한 걱정일까요. 하긴 부모님들은 자녀가 폰 설정을 해줘서 자녀 계정을 쓰기도 하더라고요. 그리고 7명 중 한분은 실제로 태블릿을 하나 더 쓰시더라고요. 나머지 분은 확인할 길이 없어서요.
0 추천
아이디가 두개씩이나 등록되었다는 자체가 문제가 아닐런지요?

이메일 주소는 전세계에서 유일한것으로 중복될리가 없는데

기존에 등록된 이메일로 다른 regid가 올라왔다면

기존것을 업데이트해야하는거 아닌가요?
nicehee (73,100 포인트) 님이 2015년 3월 3일 답변
그렇게 처리할까도 했는데요. 위에 쎄미님 말처럼 기기를 두개 쓰시는 분이 종종 있어서요. 막아놨습니다.
전 7개 사용하는디(개발용이지만)...

폰을 두개 사용해도 각각을 구분할 필요는 있을듯 하네요
7개 ㄷㄷ. 하긴 저도 테스트용은 6개입니다
...