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®istration_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 해주어야 함 )
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] 디바이스 별 플리킹 min distance & min velocity 구하기. (0) | 2012.07.17 |
---|---|
[Java] iterator 와 listiterator 의 차이. (0) | 2012.07.10 |
[Android/안드로이드] GCM 앱 개발하기 ( Google Cloud Message service app developement ) (2) | 2012.07.04 |
[Android/안드로이드] GCM (Google Cloud Messaging service ) Framework 에 대해 알아본다. (0) | 2012.07.04 |
[Android/안드로이드] GCM ( Google Cloud Messaging Service ) 에 대해 알아본다. (20) | 2012.07.04 |
댓글