Protocol


애플을 통해 푸쉬 알림을 보내기 위한 방식은 TCP 방식과 HTTP 방식이 있다.



애플에서 TCP 기반으로 보내는 API를 Binary Provider API , HTTPS 기반으로 보내는 방식을 APNS Provider API라고 명칭하고 있다.






Compare


 

 Binary Provider API

APNS Provider/Notification API 

 protocol

 TCP

HTTP/2 

 host / port

 

 gateway.sandbox.push.apple.com  // 2195      gateway.push.apple.com  // 2195



feedback.sandbox.push.apple.com  // 2196

: feedback.push.apple.com  // 2196 

api.development.push.apple.com:443

api.push.apple.com:443

Port is 443 or 2197

 data

 2KB

4KB 

 figure

High Capacity

 High Security, High Speed

 certificate

 .p12

 .p8, .p12

 feedback service

 O




(1) protocol : Binary Provider API에서는 TCP, APNS Provider API에서는 HTTP/2 Protocol 기반에서 수행된다.


(2) host / port : sandbox가 붙으면 개발서버, 아니면 운영서버이고 Binary Provider API는 피드백서비스를 활성화 해야한다.


(3) data : Payload의 용량 제한은 위와 같다. (VolP Notification 을 보낼 시 최대 5KB까지 가능.)


(4) figure : Binary Provider API 에서는 비동기 처리가 가능하고 생산성이 좋은 반면, HTTP/2 방식은 보안과 속도 측면에서 뛰어나다는 장점이 있다.


(5) certificate: TCP 방식은 .p12 인증서 파일만 사용가능하며, HTTP/2 방식으로 했을 경우에는 Token 방식을 사용할 수 있기 때문에 .p8 파일을 이용하여 여러 앱에 푸쉬 알림을 보낼 수 있다.


(6) feedback service:  feedback 서비스는 메시지전달 실패에 대한 정보를 제공하는 서비스이다. 자세한 정보는 추가적으로 다룰 예정







개요 



Apple Push Notification Service


- apns는 보안 연결을 통해 third-party server에서 앱이 설치된 사용자 디바이스로 푸쉬 알림을 보낼 수 있는 클라우드 서비스이다.




iOS 단말에 모바일 알림 서비스를 이용하려면 애플에서 자체적으로 구축된 푸쉬서버를 이용해야한다.







특징


Apnsend-to-end에서 시행한다.


- Provider는 메시지를 전달하는 공급자이며, 주로 3rd Party Server에서 수행된다. 


Apns에 연결하기 위해서는 인증 토큰 혹은 인증서를 사용해야 한다. 

  (인증토큰과 인증서는 https://developer.apple.com/account/ 에서 확인가능)



Apnstwo levels of trust와 함께 암호 검증 및 인증을 한다.(connection Trust token trust)
: Connection Trust는 연결 level에서 수행되는 암호 검증 단계
: token Trust는 단말기의 고유 deviceToken 인증 단계

- QoS를 지원한다.

 

Quality of Service(QoS)  구성요소 :  Stored-and-Forward, Coalesced Notification




  • QoS: 다른 응용 프로그램, 사용자, 데이터 흐름 등에 우선 순위를 정하여, 데이터 전송에 특정 수준의 성능을 보장하기 위한 능력

  • Stored-and-Forward: Apns가 알림을 전달하려고 할 때 장치가 오프라인이라면 일정 기간 동안 저장하고 장치가 다시 사용될 때 전달한다. 장치가 오프라인이라면 최신 알림만 보내고 이전 알림은 삭제하며, 오랫동안 오프라인이라면 모든 알림을 삭제된다.
  • Coalesced Notification :유사한 알림을 통합 할 수 있도록 알림 요청 내에 축소 식별자를 포함 할 수 있다.

  • 예를 들어 동일한 헤드 라인을 두 번 보내는 뉴스 서비스는 두 요청에 동일한 축소 식별자 값을 사용하여 통합된 알림으로 전송할 수 있다.







참고사이트: https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/APNSOverview.html












+ Recent posts