ios 서버푸쉬

Sunho·2022년 9월 18일
0

ios공부

목록 보기
1/8

알람이 가는 푸쉬 서비스는 두가지 방식이 있다.

1. Local Notification : 앱으로 부터 알람이 가는 것.

개발자가 생성한 시간이나 위치(트리거)가 작동이 되면 알람이 가는데 앱이 작동하지 않거나 백그라운드에 있을때도 가능.기기내에서

UNMutableNotificationContent : 알림에 대해 편집가능한 컨텐츠!

2. Remote Notification : 서버로 부터 알림이 감

특정 사용자가 특정행동을 한 시점에 알람이 가거나. 언제 어떤 컨텐츠가 담길지 모르는 불특정 유저에게 경고하고 싶은 경우 등
=> 로컬 기기 그 자체로 예측이 불가능해 코딩으로 임의의 문구를 적어놓는 것이 아닌 원격알림인데 서버에서 특정시점에 쏴주는 것.

APN(Apple Push Notification Service)

원격알림을 사용할때 반드시 기기로 바로가는 것이 아닌 APNs를 거치게 됨
왜?? 저장 후에 전달 기능을 수행하는 qos구성요소가 포함되어 있다. apns가 알림전달을 시도했는데 만약 device가 off상태라면 apns는 제한된 시간동안 알림 저장하고 장치가 on될때 보냄. 근데 만약 쌓인다면 가장 최근의 알람만 보냄.
각 앱서비스의 서버에서 보내는 각종 알림들을 최신상태로 하나씩 저장하다가 on되면 보내고 일정 시간 지나면 삭제하는 기능도함.
네트워크로 전달되는 데이터의 보안 문제를 해결하기 위해 자체 Architecture를 통해 원격알람 보안 유지함. 그러면 여기서 보안유지하기 위해 사용하는 방법
1.connection trust : provider(server)와 APNs. 승인된 provider만 apns에 연결되도록하는 것. tokenbased를 통해 유효한 인증키로 확인하는 경우와 certificate-based로 인증서기반으로(ssl)인증서 이용
2.device token trust : 알림이 제대로 된 제공자와 장치 지점 사이에서만 라우트 되도록 함. 서버에서 NSData토큰을 쏘면 오로지 그 토큰을 해석할 수 있는건 APNs뿐. 그리고 올바른 기기에 쏴줌.
앱이 APNs에 등록을 하면 고유한 장치 토큰을 받고 해당 provider(server)에 토큰전달. provider는 알람과 함께 토큰을 apns에 넘겨주고 apns는 토큰을 통해 고유한 기기로 알람을 보내주는 체계.
디바이스와 앱의 상태가 변경되었을때 항상발급해서 고유한 상태를 유지하게 한다.
project > signing&capablilties > push추가

profile
앱개발자

0개의 댓글