"야 ~ 나 춘향이 뽑았어"
반응이 없더군요. 그래서 에이.. 하고 공짜로 받은 가챠 카드 5장 소비해서 뽑았는데 진짜 나왔습니다. =ㅅ=
토르, 시드링크? 는 덤으로 나오더군요.
$ sudo npm install forever -g
$ forever start app.js
$ forever logs
$ forever logs 0
https://code.google.com/apis/console/#project:4815162342
"Services." 탭을 선택합니다.
"Google Cloud Messaging" 을 ON 으로 토글링 합니다. (켭니다)
"API Access" 탭을 선택합니다.
아래쪽에 보면 "Create New Server Key" 라는 버튼이 있습니다.
보내고 싶은 IP 리스트에 대한 리스트를 작성해 주고 싶으면 작성하고 마땅히 할게 없으면 "Create" 버튼을 눌러줍니다.
/**
* Base URL of the Demo Server (such as http://my_host:8080/gcm-demo)
*/
static final String SERVER_URL = "http://192.168.0.36:3000";
// node.js 서버가 기다리고 있는 주소와 포트를 적어 주는 것입니다.
/**
* Google API project id registered to use GCM.
*/
static final String SENDER_ID = "4815162342"; var main = require('main');
// 위에서 얻은 Project Number 를 입력해 줍니다.
이로서 클라이언트 부분은 끝이 났습니다. 이제야 제일 핵심인 Node.js 에서의 푸시 기능 구현에 들어가겠습니다.
$ cd $PROJECT_DIRECTORY
$ npm install node-gcm --save
-- save 옵션을 package.json 에 해당 사항을 기입하라는 뜻입니다.
app.js 를 열어서 다음과 같이 추가 해 줍니다.
app.post('/register', main.regist);
app.get('/send', main.send_push);
main.js 파일을 하나 만들어서 열고
exports.regist = function (req, res) { console.log (req.param('regId'));
// 원래는 DB 에 저장하는 부분이 있어야 할 것입니다. 받아서 디비에 저장하기
res.end(); } exports.send_push = function(req, res) { var message = new gcm.Message(); var sender = new gcm.Sender('API Key 를 입력하는 곳입니다. '); var registrationIds = []; // Optional message.addData('key1','message1'); message.addData('key2','message2'); message.collapseKey = 'demo'; message.delayWhileIdle = true; message.timeToLive = 3; // At least one required registrationIds.push('이곳은 register 함수에서 받은 regId 를 입력하는 부분입니다.'); /** * Parameters: message-literal, registrationIds-array, No. of retries, callback-function */ sender.send(message, registrationIds, 4, function (err, result) { console.log(result); }); // sender.sendNoRetry(message, registrationIds-array, function (err, result) { // console.log(result); // }); // retry 없이 보내는 부분입니다. 보통은 이것을 더 많이 애용할 것 같습니다. }
// 만약 제대로 구현 됐다면 디비에서 읽어서 가져오겠지요?
너무 쉽게 끝났지요? 이게 node.js 의 힘이라고 볼 수 있습니다. 자신의 안드로이드 프로젝트에 기능을 추가하고 싶으시다면 참조 사이트를 참조하시면 됩니다.
참조 사이트
https://github.com/ToothlessGear/node-gcm : node.js 에 gcm 모듈 구현
http://developer.android.com/google/gcm/gs.html : 구글의 gcm 모듈 구현하는 설명 페이지 (완전 중요!!)