Push server

진영민·2022년 11월 9일
0

잡다한 상식

목록 보기
9/22

push notification

서버에서 발생한 Event를 특정 클라이언트에게 통지하는 기술.
대표적으로 SNS application이 있다.

모바일에서 주로 사용되는 기술인데, 이는 모바일 장치의 배터리를 절약시켜주기 때문이다.

작동 순서는 다음과 같다.(FCM 사용)

Application token 발급

  1. Application은 FCM서버에 FCM토큰을 요청한다.
  2. FCM은 요청이 유효한지 확인한 후, token을 발급한다. FCM은 이후 해당 device와 통신을 위한 endpoint를 token에 등록한다.
  3. token은 Application에게 전송된다.
  4. Application은 이 token과 자신의 식별자를 server에 보낸다.
  5. 서버는 유저와 FCM token을 연결해 둔다.

Messaging group 등록

  1. Application에서는 Server에 자신이 특정 방에 입장하겠다는 요청을 보낸다.
  2. Server에서는 해당되는 채팅방 그룹에 사용자의 id를 등록해 둔다
  3. FCM token을 가져온다.
  4. 이 토큰을 특정 Messaging Group에 추가해달라는 요청을 FCM에 보낸다.
  5. FCM은 해당 Messaging group에 token을 추가한다.

message 발송

  1. Application은 Server에 메시지 발송을 보낸다.
  2. 서버는 사용자가 해당 그룹에 속하는지 판단합니다.
  3. 서버는 FCM에 해당 그룹에 속한 모든 기기에게 메시지를 발송하도록 요청한다.
  4. FCM은 Messaging Group의 테이블로부터 모든 기기들의 token을 받는다.
  5. FCM은 각 token에 해당하는 endpoint 메시지를 발송한다.

OSPNS

Operating System Push Notification Service
IOS와 Android 운영체제는 각각의 운영체제의 Push Notification Service를 가지고 있다.

APNS

Apple Push Notification Service, apple의 OSPNS

push message를 만드는 사람은 이를 apple로 보낸다.
apple은 이를 각각의 소비자에게 전달하며, 핸드폰에 알림이 울리게 된다.

HTTP/XMPP

단방향은 HTTP, 양방향은 XMPP(Extensible Messaging and Presence Protocol) 또는 socket을 사용한다.

그 외 방식

push message provider는message를 message broker에 message queue의 형태로 저장한다.
이는 1대1 push일 경우와 1대N의 경우가 있다.

1대1

소비자마다의 queue에 메시지를 넣는다. 이후, 사용자가 연결되었을때, queue에서 메시지를 빼내 처리하는 방식으로 메시지를 전달한다.

1대N

Topic별로 queue를 생성하여, 소비자가 해당 topic을 구독하는 방식이다.
공급자는 소비자를 모른 채로 Topic에 알맞은 queue에 메시지를 넣으며, 이후, message broker가 해당 topic을 구독한 소비자에게 메시지를 전달하는 형식이다.

profile
코린이

0개의 댓글