FCM으로 업데이트되었다고함..FCM은 추후에 다시 정리하도록 하겠습니다~


Google Cloud Messaging

  • 개발자에게 서버에서 안드로이드 디바스의 어플리케이션으로 데이터를 전송하는 것을 도와주는 무료 서비스.

  • 3rd-party에서 새로운 데이터가 있을 경우 gcm 서비스를 통하여 message를 특정 device의 특정application으로 전송 해준다. message는 최대 4kb

  • GCM 서비스는 message를 큐잉하며 이를 단말에 전달해주는 처리를 담당함.

  • GCM Conntection Server는 http / xmpp 지원함



Flow

  • GCM Server는 3rd-party server로부터 message를 받고 이것을 gcm을 사용하는 app 단으로 전송한다.

  • 현재 GCM connection server는 HTTP와 xmpp를 지원한다.

  • XMPP 프로토콜은 단말과 서버간의 tcp 연결을 계속 유지시켜준다.

  • 3rd-party server는 GCM connection server에 message를 보내고, connection server는 queue에 message를 저장하고, device가 online 일 때 device에 message를 보낸다.

  • app은 GCM message를 받기 위해 GCM에 등록해야하며 , REGISTRATION id를 얻어야 한다.

  • 만약 xmpp conntection server를 사용한다면, client app은 upstream message를 connection server에 보낼 수 있다.



GCM 특징

  • 안드로이드 어플리케이션으로 message를 보낼 수 있는 3rd party server를 허용.

  • GCM은 MESSAGE 전달과 순서를 보장하지 않음.

  • Android Application은 message를 받기 위해 실행되고 있을 필요 없음.

  • GCM은 단순히 원시 DATA를 ANDROID 단말로 보내며, 이 DATA를 통해  application에서 제어함.

  • android 2.2 이상 지원 , Google Play Stote App이 설치되어있어야함.

  • 구글계정 필요, android 4.0.4이상에서는 필요없음.


 

GCM 

서버인증 

 Google Api Console을 통해 발급받은 simple api key를 사용

Sender Id

 Google Api Console을 통해 발급받은 sender ID 사용.

Json Format 

지원 

Multicast message 

동일한 MESSAGE를 여러 단말에 전송할 수 있음.(JSON형태로) 

Multiple Senders 

다양한 3rd party server로부터 같은 app에 message전송.(하나의 통일 restration id사용) 

Time to Live 

0~4주 사이를 expire로 지정가능. 만료일이 지나면 message저장  

battery 

배터리에 좀 더 효율적

quotas 

제한 없음. 



GCM 아키텍처

  • app은 message를 받기위해 GCM으로부터 device를 register함. 이 register를 3rd-party에 등록.

  • 3rd party server는 app에 message를 보내기 위해 등록된 register와 함께 GCM으로 message전송.

  • GCM Connection Server는 register로 확인된 단말에 해당 message를 전송

  1. 단말에서 GCM으로 REGISTER요청
  2. GCM에서 REGISTER 성공 후 resistration id 전송
  3. 3th party server로 registration id 전송
  4. resistration id값과 message를 gcm으로 전송.
  5. 해당 registration에 맞는 단말에 message전송.


GCM 시퀀스



GCM 용어정리

Sender ID

Google API Console로부터 획득한 project number값
Sender ID 값은 GCM에 해당 단말을 register 할 때 사용됨. 이는 GCM으로부터 허가되는 애플리케이션임을 입증하기 위해 사용.

Application ID

Message수신이 설정되어 있는 안드로이드 애플리케이션에게 GCM 서버에 의해 발급된 ID값.
이 값으로 Android 시스템에서 해당 application으로 message를 전송하도록 함.

Registration ID

Message를 수신하도록 허용된 android application에게 GCM 서버에 의해 발급된 ID값.
이 Registration ID값으로 특정 단말의 특정 application과 연결될 수 있는 식별자.

Google User Account

4.0.4 미만 버전에서 GCM이 정상구동되기 위해서 한개 이상의 Google계정이 해당 단말에 설정 되어있어야함.

Sender Auth Token

Message를 보내는 3rd party server에 GCM에 접근이 허용되도록 주어진 API KEY
이 값은 서버에서 GCM으로 전송시 post 요청의 header에 포함되어 있어야함.













'웹 개발 > 안드로이드' 카테고리의 다른 글

RecyclerView란?  (0) 2017.05.10
가변 비트레이트 스트리밍(Adaptive Bitrate Streaming)  (0) 2017.04.11
Parcelable  (0) 2017.04.08
Intent  (0) 2017.03.18
SurfaceView 와 SurfaceHolder  (0) 2017.03.14

+ Recent posts