2012-02-14 2 views
9

가 유효하지 않은 토큰을 감지하기 위해 얼마나 자주 피드백 서비스를 확인해야합니까?APNS 피드백을 얼마나 자주 확인 하시겠습니까?

APNS 서비스를 사용하는 방송 시스템을 구현했습니다. 연결을 열고 모든 APNS 메시지를 보내고 연결을 끊습니다. 그런 다음 방송이 완료된 직후 피드백 연결을 열고 유효하지 않은 토큰을 읽습니다.

피드백 연결에 잘못된 토큰이 표시됩니다. 그러나, 종종 내 방송은 부분적으로 만 (일부 장치는 수신하고 다른 사람들이하지 않는) 성공, 나는이 알려진 좋은 토큰 제외하고 모두 제거 할 때, 내 테스트 장치는 지속적으로 메시지가 나타납니다.

처음 몇 건의 유효하지 않은 토큰을받은 후 Apple에서 방송을 중지한다고 가정합니다.

피드백을 제대로 듣지 못하고 있습니까?

+2

유효 토큰을 드롭하는

이 허용 나는 것을 발견 형식 (애플이 마음에 들지 않은 ** 한 ** 토큰을 보낸 후 OK, 정상적인 토큰과 구별 할 수 없음), 그들은 나를 연결 해제했다. –

답변

2

푸시 프로그램을 보내고 비활성 장치를 삭제할 때마다 피드백 응답을 확인해야합니다. 비록 이것이 지금 당신의 문제처럼 보이지는 않습니다.

토큰이 데이터베이스에 올바르지 않은 것 같습니다. 데이터베이스에 토큰이 없습니다. 당신이 무효 토큰을 보내는 경우 애플은 당신의 연결을 삭제합니다. 비활성 토큰을 보내면 아무 효과가 없지만 잘못된/잘못된 토큰을 보내면 Apple이 소켓을 죽입니다.

다른 문제는 사용자 측에 재시도 계획이 누락되었을 수 있습니다. 누르는 동안 떨어지면 Apple과의 연결을 다시 열어주는 루틴을 구현 했습니까? 연결이 실패 할 수 있음을 예측해야합니다. 연결이 실패하면 다시 연결하고 중지 한 곳에서 다시 밀어 넣기 시작해야합니다.

당신이 찾아야하는 것은 :

  • 당신이 Notnoop 살펴보십시오 장소
  • 에 재시 방식이 있는지 확인 데이터베이스에 있는지 경우에만 stock 유효한 토큰을 확인, 그것은이다
+0

감사 합니다만, 토큰이 모두 유효 해 보입니다. 그들은 모두 동일한 형식의 Apple 장치를 사용했습니다. 애플이 소켓을 끊었을 때 아무런 피드백을주지 않기 때문에 재시도 계획은 불가능하다. 소켓을 닫는 데 100ms 정도 걸릴 수 있기 때문에 나는 그때까지 수백 통의 알림을 보냈을 것입니다. –

3

마지막으로이 문제를 올바르게 처리하는 유일한 방법은 Apple의 새로운 "향상된 알림 형식"으로 이동하는 것입니다. 이 형식을 사용하면 보내는 각 메시지에 ID를 제공 할 수 있으며, Apple에서 연결을 끊으면 오류를 일으킨 메시지의 ID와 오류를 사용자에게 보냅니다. 클라이언트가 제대로 이미 시도 메시지를 보내 추가 조사 후

관련 문제