0

많은 튜토리얼과 의견을 보았습니다. Apple 서버에 알림 일괄 전송하는 간단한 스크립트를 개발했으며 매 5 초마다 crontask합니다. (PHP는 지금까지 개선되어야합니다.)사과 푸시 알림 - 서버 파트 디자인

이렇게하면 코드가 간단하고 1 일괄 처리가 더 큰 경우 다음 일괄 처리가 지연되지 않습니다. 또한 여러 서버에서 실행하여 더 빠르게 디스패치하고 동시성 문제를 해결할 수 있습니다.

그러나 5 초마다 소켓을 열거 나 닫는 사실에 대한 Apple의 관용에 대해서는 분명하지 않습니다 ... 샌드 박스 모드 , 그것은 완벽하게 작동합니다. 조언

답변

0

에 대한

감사하는 방법이 방법에 대한 : - 일괄 일부 데이터 구조 (I는 PHP에 대해 잘 모르지만, 목표 - C에서이 일부 사용자 지정의 NSArray를 포함하는 경우가 될 것입니다 모든 NotificationClass 또는 NSDictionaries). - A) 한 번 더 묶어 X 알림을 보내거나 B) 특정 시간 (예 : 5 초) 대기 한 경우

푸시 알림을 사용하는 항목에 따라 이러한 변수를 조정할 수 있습니다. 예를 들어 채팅 앱은 즉시 전송되기를 원하지만 일부 일일 메시징 앱은 한 시간에 한 번에 한 번에 모든 메시지를 전송해도 괜찮습니다. 또한

, 개방 연결에 대한 사과의 말 :

같은 게이트웨이 또는 여러 게이트웨이 인스턴스에 여러 연결을 설정할 수 있습니다. 많은 수의 푸시 알림을 보내야하는 경우 여러 개의 다른 게이트웨이에 대한 연결을 통해 전파하십시오. 단일 연결을 사용하는 것과 비교하여 성능이 향상됩니다. 푸시 알림을 더 빠르게 보내고 을 사용하면 APN이 더 빨리 전달할 수 있습니다.

여러 알림에 걸쳐 APN 연결을 유지하십시오. 연결을 반복해서 열고 닫지 마십시오. APN은 서비스 거부 (DoS) 공격으로 빠른 연결 및 연결 해제를 처리합니다. 사용자가 사용자에게 알림을 하루에 한 번만 보내면 매일 새 연결을 사용하는 것이 좋습니다.

공식 문서는 여기 (Best practies for Managing Connections)를 참조하십시오.

+0

사실 모든 알림 일괄 처리는 이미 서버의 데이터베이스에 저장되어 있으며 5 초당 여러 1000 건이 발송되기를 기대합니다. 나는 단지 사과를위한 도스라면 5 초가 될지 궁금해한다. –

0

아이디어는 단순히 배치간에 연결을 열어 두는 것입니다. 사실, Apple은 여러 개의 연결을 생성 할 것을 권장합니다. 따라서 아마 5 개 또는 10 개의 연결을 통해 1000을 나눌 수 있습니다. 코드의 연결 관리자를 사용하여 연결의 수명을 제어 할 수 있습니다. x 시간 동안 메시지가 전송되지 않으면 시스템을 종료하십시오. 일부 클라이언트 코드가 연결을 요청하면이 관리자가 새 관리자를 만들거나 현재 데이터를 보내기 위해 사용되지 않는 관리자를 반환합니다. 이 관리자의 클라이언트는 연결을받지 못할 준비가되어 있어야하며 연결 ​​관리자는 클라이언트에게 연결 가능성에 대해 차례대로 알려야합니다.

아키텍처 측면에서 많은 가능성이 있지만, 요점은 연결을 열어두고 얼마 동안 유휴 상태로 두는 것이 좋습니다. 그런 다음 여러 번 열거 나 닫는 것이 좋습니다.

+0

나는 대답이 완전히 다른 접근법을 제공하지 않는 한 동일한 질문에 대해 두 명의 답변을 게시하는이 사이트에서 좋은 연습으로 간주된다. 문제. 방금 추가 내용으로 원래 답변을 편집 했어야합니다. – Eran

+0

죄송합니다. 다시 같은 실수를하지 않으려합니다. 내 사과. – Joride

+0

Ok Thanks Joride for this advice - 나는 하나의 연결로 계속 실행되는 PHP 파일을 만들어야 할 것입니다! –

관련 문제