Skip to content
This repository has been archived by the owner on May 1, 2023. It is now read-only.

Latest commit

 

History

History

notification

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

알림 서버

역할

서비스 역할
알림 서버 클라이언트에게 푸시 메세지를 전송하는 기능을 제공

기술스택

  • Java 11
  • Springboot 2.6.2
  • Spring MVC
  • Spring Cloud
  • Firebase Cloud Messaging

제공 기능

기능 설명
푸시 메세지 전송 - 플랫폼 별로 일괄 전송

구현

  1. 푸시 메세지 전송
  • 채팅 서버와 상태관리 서버를 통해 푸시 메시지를 전송해야 할 유저들의 아이디와 함께 메시지의 내용을 전달받습니다.
  • 유저 아이디를 기준으로 유저 서버에서 디바이스 토큰 및 타입(ex. Web, iOS)을 조회하고, 메세지 내에서 전송해야 할 플랫폼을 기준으로 그룹화합니다.
  • 이후 플랫폼별로 그룹화된 메시지를 일괄 전송합니다

프로젝트 진행 중 이슈

FCM 전송방법

  • FCM 요청을 할 때 특정 기기(단일 디바이스)에 전송을 하는 경우 많은 수의 사용자가 있을 때 HTTP 개별 요청을 해야하기 때문에 해당 방법을 배제했다.
  • 따라서 발송해야 하는 메세지를 일괄 처리하기 위해 수신받아야 하는 유저들의 토큰을 기준으로 메세지를 만들고 일괄 전송한다.

도배 메세지에 대한 핸들링

  • 이번 프로젝트에서는 채팅 및 음성 채팅, 그리고 상태 관리를 구현하는 프로젝트이다보니 상대적으로 알림 서버를 개발하는데 많은 시간을 투자하지 못 했다.
  • 따라서 채팅 서버에서 요청이 오는대로 플랫폼만 나눠서 FCM 메세지 요청 형태를 가공하고 일괄 전송하고 있다.
  • 이 경우에 요청에 따라서 알림을 계속 전송하기 때문에 같은 채널, 같은 사용자의 도배 메세지에 대한 핸들링이 이루어지지 않고 있다.
  • 이 부분을 알림 서버에서 제한 시간을 두고 확인하여 도배 메세지를 제어하는 기능을 추가하지 못한 게 아쉽다.