티스토리 뷰

BackEnd/Node.js

FCM Silent Push

철철22 2019. 8. 17. 16:23
반응형

안녕하십니까 저번에 node js에서 FCM을 이용한 Push Server 구현을 작성했습니다.

2019/07/21 - [nodeJS] - node js FCM으로 Push Server 구현

 

저는 Rest API 개발을 하면서 모바일 API를 개발한 적이 없다 보니 개념이 많이 부족한 상태였고,

Push Server 또한 이번에 처음 개발을 하면서 많은 것을 배우고 경험할 수 있었습니다.

 

그리고 Push Server를 개발하면서 단순 Push 용도로만 사용하는 줄 알았지만,

Push 기능이 제법 다양하게 사용하더라고요.

 

예를 들면 Background Service를 개발을 할 때 Client가 매번 API를 호출하여 새로운 데이터를 받아오는 작업 대신에 

Server가 Push 기능을 이용하여 Client에 데이터를 보내줄 수 있습니다. 

 

이러한 기능을 위해 Push를 보내는 작업을 Silent Push라고 하는 거 같습니다.

 

저번 글에 FCM 구현한 거를 이용하여 Silent Push를 사용할 시 data 형태만 바꿔서 보내주면 됩니다.

 

저는 Android와 IOS 공용으로 사용하기 위해서 FCM을 사용했으며 Push 전송 요청 형식은 여기를 클릭해 주세요.

기본적인 사용 방법은 위에 이전 글을 클릭해 주세요.

    const message = {
      data: {
        title: title,
        contents: mes,
        id: type, // AOS param
        aos_silent: silent, // AOS param,
      },
      tokens: tokenA,
      android: {
        ttl: 3600 * 1000
      },
      apns: {
        // IOS 설정
        payload: {
          aps: {}
        }
      }
    };

    if (silent === "Y") {
      message.apns.payload.aps["contentAvailable"] = true;
    } else {
      message.apns.payload.aps["contentAvailable"] = true;
      message.apns.payload.aps["sound"] = "default";
      message.apns.payload.aps["alert"] = {};
      message.apns.payload.aps["alert"]["title"] = title;
      message.apns.payload.aps["alert"]["body"] = mes;
    }

data 형태는 다음과 같습니다.

Android Push 같은 경우에는 "data" key 안에 넣으면 되지만,

IOS 같은 경우에는 "data" key가 아닌 apns.payload.aps 안에 넣어줘야 합니다.

 

그리고 contentAvailable을 true로 해줘야 Silent Push로 보내지더라고요.

 

그 외에 alert나 sound 같은 "key"를 넣어서 보내줄 수도 있고,

그 외에 custom data도 넣어줄 수 있습니다.

 

이러한 정보는 문서에서도 볼 수 있고 node_modules/firebase-admin 모듈에 들어가서 어떠한 "key"들이 있는지 확인하실 수 있습니다.

 

반응형

'BackEnd > Node.js' 카테고리의 다른 글

type check with typescript  (0) 2019.10.23
nods.js Request를 이용한 외부 api 호출  (0) 2019.08.17
node.js FCM으로 Push Server 구현  (2) 2019.07.21
node.js scheduler  (0) 2019.07.05
node.js File upload 하기  (0) 2019.06.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함