GCM

2013. 12. 2. 22:08

GCM 정의 및 특징
GCM(Google Cloud Messaging)이란
서버에서 안드로이드 단말에 데이터를 전송하는 push 서비스
GCM 특징
  • 3'rd party 애플리케이션 서버를 구성하여 사용자에게 메세지를 전송하는 방식이다.
  • 메세지 전달과 순서를 보장하지 않는다.
  • 사용자 단말로부터 메세지를 받을 수도 있다.
  • 앱이 실행중이 아니어도 메세지를 받을 수 있다. (broadcast receiver가 해당 앱을 실행시킨다)
  • Android 2.2 이상부터 지원한다.
Lifecycle
  1. 사용자 어플에서 GCM서버로 등록 요청을 한다.
  2. 등록 성공 후 받은 registration ID를 3'rd party 서버로 전송한다.
  3. 3'rd party 서버에서는 registration ID를 저장하고 있다가, 필요할 때 해당 ID를 이용하여 GCM 서버로 전송할 메세지를 보낸다.
  4. GCM서버에서는 메세지를 받아서 해당 사용자에게 메세지를 전송한다.
  5. 사용자 어플의 broadcast receiver가 메세지를 처리할 어플을 구동시키고, 해당 어플이 메세지를 처리한다.

android google cloud messaging gcm architecture
참고 및 주의사항
  • GCM서버 등록에는 라이프 사이클 메소드가 없으므로 미등록시에만 등록한다.
  • GCM 서버에서 메세지 전송을 시도한 후, 애플리케이션이 제거되었다는 NotRegistered 응답을 받으면 등록을 해제시켜야 한다.
  • registration ID은 정기적으로 갱신될 수 있다.
  • 사용자가 애플리케이션을 제거해도 GCM상에서 자동으로 등록이 해제되지 않는다.
GCM 시작하기
Google APIs Console 설정
  • https://code.google.com/apis/console/ 에 접속한다. (프로젝트가 없는 경우 생성하라고 뜬다. 생성할 것)
  • services메뉴에 들어가 Google Cloud Messaging for Android 항목을 on 한다.
  • url의 https://code.google.com/apis/console/#project: 뒤에 나오는 숫자(Sender ID)와
    API Access 메뉴의 API key 항목의 값이 (Authorization Key) 필요하다.

'프로그래밍' 카테고리의 다른 글

PostgreSQL  (0) 2014.06.30
Android 성능향상  (0) 2014.02.12
Thread Dump  (0) 2014.02.10
Eclipse Error  (0) 2013.12.10
Android DI  (0) 2013.12.02