구조

 

https://firebase.google.com/docs/cloud-messaging/fcm-architecture

 

 

 

개인적으로 Firebase 레퍼런스는 굉장히 친절하고 쉬운편이라고 생각해서 사이트를 조금만 참조해도 누구나 쉽게 이해할 수 있다고 생각하며, 개인적인 의견만 코멘트해 본다.

 

 

(1) : GUI 나 HTTP/XMPP 프로토콜을 사용할 수 있는 환경이라면 어디서든 메시지를 전송할 수 있다. 파이어베이스 sdk 라이브러리를 사용할 수 있는 환경은 https://firebase.google.com/docs/libraries에서 확인 가능하다.

 

(2) : 클라이언트에게 메시지 전송을 하려면 FCM 백엔드 서버에 클라이언트 정보를 같이 전달해줘야 하는데 토픽과 instance가 필요하다.

여기서 토픽은 클라이언트 정보를 묶는 topic (pub/sub 모델에서 자주 등장하는 topic 으로 생각해도 좋다) 을 전달해주거나 고유한 token(device 정보를 알 수 있는 uuid 값)을 함께 전달해야 한다.

 

(3) : FCM 백엔드 서버는 데이터를(json 혹은 xml) 분석하고 플랫폼에 맞게 전송 서버를 타겟할 것이다;.

 

(4) : 전송했던 타겟 정보와 일치한 클라이언트는 메시지를 수신한다.

 

 

 

LifeCycle

 

위의 플로우로 메시지를 전송하려면 반드시 선행해야하는 작업이 있는데, 당연하겠지만 메시지를 수신할 클라이언트는 자신의 정보를 FCM 서버에 등록해야 한다는 점이다. 순서는 다음과 같다.

 

 

1. 클라이언트는 자신의 정보( 토픽, 인스턴스) 를 FCM 백엔드 서버에 등록해야 한다.

2. 메시지를 전송할 주체 (3rd-parry 서버 혹은 모바일) 는 등록된 정보를 획득해야 하며, 해당 정보로 다운스트림 메시지를 전송한다.

 

 

+ Recent posts