2018년 5월 25일 금요일

GCM 시나리오 정리(본인의 주관적인 예상)


// SENDER_ID, API_KEY 얻기
https://code.google.com/apis/console/에서 발급 받는다.
  SENDERI_ID = 234123
  API_KEY = Axd342sc34E3324AS
라고 가정 한다.

// GCM 메시지 전송과정
① REGISTRATION_ID 얻기
1) 먼저, DEVICE_MAC_ADDRESSPACKAGE_NAME을 보내서 REG_ID가 등록되어 있는지 확인한다.
2) 등록되어 있지 않다면, SENDER_IDDEVICE_MAC_ADDRESSPACKAGE_NAME을 보내서 REG_ID를 등록 요청하고
생성된 REG_ID를 얻어 온다.

② REGISTRATION_ID 등록
1) THIRD PARTY SERVER에 얻어온 REG_ID를 보내서 등록시킨다.

③ GCM 전송 요청
1) THIRD PARTY SERVER에서 GCM서버에 REG_IDAPI_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_ADDRESSDEVICE_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

댓글 없음:

댓글 쓰기