본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] GCM 서버 개발하기 ( Google Cloud Messaging service server development )

by 돼지왕 왕돼지 2012. 7. 4.
반응형

 http://developer.android.com/guide/google/gcm/gcm.html  

2012/07/04 - [프로그래밍 놀이터/안드로이드] - [Android/안드로이드] GCM (Google Cloud Messaging service ) Framework 에 대해 알아본다.
 

2012/07/04 - [프로그래밍 놀이터/안드로이드] - [Android/안드로이드] GCM ( Google Cloud Messaging Service ) 에 대해 알아본다.


GCM Server 개발하기

메세지 보내기

3rd-party app server 가 multicast 를 할 경우는 반드시 JSON 을 사용해야만 하며, single cast 할 경우는 plain text 도 가능하다.


GCM server 에 메세지 요청은 https://android.googleapis.com/gcm/send 주소에 POST 방식으로 request를 한다. header 에는 반드시 다음 parameter 들이 들어가야 한다.

- Authroization:key=API_KEY

- Content-Type:application/json  or  application/x-www-form-urlencoded:charset=UTF-8 

 

Content-Type:application/json

Authorization:key=AIzaSyB-1uEai2WiUapxCs2Q0GZYzPu7Udno5aA


{

  "registration_id" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",

  "data" : {

    ...

  },

}

 
만약 content-type 이 없다면, plain text 로 간주된다.



JSON 파라미터들

- registration_ids : array. 1~1000 개의 아이디가 들어갈 수 있다.

- collapse_key : message type 을 grouping 하는 녀석으로, 해당 단말이 offline 일 경우 가장 최신 메세지만 전달되는 형태다.

- data : key-value pair.

- delay_while_idle : message 가 바로 전송되는 것이 아니라, phone 이 active 되었을 때 collapse_key 의 가장 마지막 녀석만 전송되도록.

- time_to_live : 단말이 offline 일 때 GCM storage 에서 얼마나 있어야 하는지를 설정함. collapse_key 와 반드시 함께 설정되야 한다.





Plain text 파라미터들

- registration_id

- collapse_key

- data.<key>

- delay_while_idle

- time_to_live


{ "registration_ids": [ "42" ] }


registration_id=42


{ "data": {

    "score": "5x1",

    "time": "15:10"

  },

  "registration_ids": ["4", "8", "15", "16", "23", "42"]

}


{ "collapse_key": "score_update",

  "time_to_live": 108,

  "delay_while_idle": true,

  "data": {

    "score": "4x8",

    "time": "15:16.2342"

  },

  "registration_ids":["4", "8", "15", "16", "23", "42"]

}


collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.sc


ore=4x8&data.time=15:16.2342&registration_id=42


cf) firewall 이 있는 경우 ports 는 5228, 5229, 5230 을 open 해야 한다. 보통은 5228 만 사용하고, 5229 와 5230 은 가끔 사용된다. 




Response Format

- 200 : 성공

- 400 : JSON 일때만 return 되며 JSON 을 parsing 할 수 없다는 의미. 혹은 invalid field 를 가지고 있다는 의미.

- 401 : authentication 실패

- 500 : GCM server 의 internal error

- 503 : GCm server 가 임시로 사용불가 ( retry 해주어야 함 )





반응형

댓글