
// SENDER_ID, API_KEY 얻기
https://code.google.com/apis/console/에서 발급 받는다.
SENDERI_ID = 234123
API_KEY = Axd342sc34E3324AS
라고 가정 한다.
// GCM 메시지 전송과정
① REGISTRATION_ID 얻기
1) 먼저, DEVICE_MAC_ADDRESS, PACKAGE_NAME을 보내서 REG_ID가 등록되어 있는지 확인한다.
2) 등록되어 있지 않다면, SENDER_ID, DEVICE_MAC_ADDRESS, PACKAGE_NAME을 보내서 REG_ID를 등록 요청하고
생성된 REG_ID를 얻어 온다.
② REGISTRATION_ID 등록
1) THIRD PARTY SERVER에 얻어온 REG_ID를 보내서 등록시킨다.
③ GCM 전송 요청
1) THIRD PARTY SERVER에서 GCM서버에 REG_ID, API_KEY와 전달할 메세지를 보낸다.
④ GCM 전송
1) 전달받은 REG_ID와 API_KEY가 일치하는 로우를 찾아내서 해당하는 DEVICE_IP에 메세지와 PACKAGE_NAME을 보낸다.
2) DEVICE에서 메세지와 PACKAGE_NAME을 전달 받고,
PACKAGE_NAME과 일치하는 패키지의 GCMIntentService클래스의 onMessage 콜백함수가 호출된다.
// DEVICE_IP 갱신
DEVICE 가 온라인 될때마다 GCM SERVER에 DEVICE_MAC_ADDRESS, DEVICE_IP 를 보내서 새롭게 갱신시킨다.
// GCM SERVER 자료 테이블 예시
PK = {DEVICE_MAC_ADDR, PACKAGE_NAME}
DEVICE_MAC_ADDR
|
PACKAGE_NAME
|
REG_ID
|
SENDER_ID
|
API_KEY
|
DEVICE_IP
|
0c:71:5d:0f:ed:98
|
com.a
|
3243gf561xv
|
234123
|
Axd342sc34E3324AS
|
127.235.44.34
|
0c:71:5d:0f:ed:98
|
com.b
|
46bfsf2gg
|
234123
|
Axd342sc34E3324AS
|
127.235.44.34
|
댓글 없음:
댓글 쓰기