2016-06-22 2 views
0

GCM과 관련된 문제와 푸시 알림의 후진성을 해결하기 위해 많은 시간을 보냈습니다.GCM에서 푸시를받는 데 얼마나 시간이 필요합니까?

내 Android 앱은 푸시 메시지를 받지만 CURL 기능을 사용하는 PHP 서버를 통해 전달 된 24 시간 후에도 푸시 메시지를받습니다.

피드백을받지 않고 time_to_live를 0 또는 86400으로 설정하고 delay_while_idle을 false로 설정하려고 시도했지만 메시지가 늦게 도착하기 시작합니다.

나는 5 분마다 보내는 하트 비트를 아무런 효과없이 설정 한 후 푸시 알림 해결 도구를 이미 시도했습니다.

하트 비트를 보낼 때 예약 된 작업 (타이머, AlarmManager 또는 기타 ..)을 통해 대기중인 장치 (인터넷이 너무 깁니다)가 인터넷 장치에 대한 활성 연결을 유지하면 (5 분마다라고 가정) 메시지를받을 수 있습니다.

그러나 GCM은 장치가 온라인 상태이며 메시지를 대기열에 보내는 것으로 인식되기 때문에 연결이 활성화되어 있어야합니다.

이 문제는 뿐만 아니라 FCM도 영향을 줍니까?

감사합니다.

+0

잘 알려진 GCM의 문제점입니다. 오랜 시간 동안 고민 끝에 한 가지 신호를 테스트 한 결과, 한 신호에 대해 코드를 많이 변경하지 않아도됩니다.여기를보실 수 있습니다 https://documentation.onesign.com/docs/using-onesignal-in-your-android-app – Zartha

+0

보고서를 보내 주셔서 감사합니다.하지만 GCM (또는 FCM)을 사용하는 것이 좋습니다.) 제 3 자 서비스에 구속되지 않습니다. – Daniele

답변

0

GCM에서 푸시 알림을 수신하는 데 얼마나 많은 시간이 필요하며 얼마나 많은 시간이 필요한지 명확하고 정확한 답변은 없다고 생각합니다. 당신이 말했듯이 있기 때문에, 푸시 알림과 같은 메시지를 수신하기 위해 옵션을 설정할 수 있습니다

  • priority - 당신이 또한 메시지를 전달 다른 웨이크 업 잠자는 장치를보다 high에 GCM의 우선 순위를 설정하는 경우 지연없이 최대한 빨리 장치에 연결하십시오. 또한 우선 순위를 normal으로 설정하면 절전 모드 장치에서 네트워크 연결이 열리지 않으며 배터리를 절약하기 위해 전달이 지연 될 수 있습니다.

  • delay_while_idle flag - GCM은 일반적으로 메시지를 전송 한 직후에 메시지를 전달합니다. 그러나 이것이 항상 가능하지는 않습니다. 예를 들어 플랫폼이 Android 인 경우 기기를 끄거나 오프라인으로 설정하거나 사용할 수 없게 될 수 있습니다. 또는 보낸 사람은 delay_while_idle 플래그를 사용하여 장치가 활성화 될 때까지 메시지 배달을 요청할 수 있습니다. 마지막으로, GCM은 의도적으로 메시지를 지연시켜 애플리케이션이 과도한 리소스를 소비하거나 배터리 수명에 부정적인 영향을 미치지 않도록 할 수 있습니다.

소스 : GCM documentation

또한, 단지 인터넷과 와이파이 연결도 푸시 메시지의 시간에 영향을 유의하십시오.

푸시 메시지의 평균 속도를 원할 경우 응답의 비디오를 확인하십시오 (이 메시지는 SO question입니다).

자세한 내용은 page 및이 SO question을 확인하십시오.

+0

예 알아요. 문제는 장치가 대기 상태에 있고 데이터 연결이 제한되어있을 때 도착 지연이 몇 시간 또는 하루 종일 매우 중요하다는 것입니다. 이 문제는 앱이 깨어나서 지금 당장 장치를 깨우고 하트 비트를 보내고 GCM에 대기중인 메시지가 도착할 때까지 기다려야합니다. 음, 잠자기 모드로 전환하기 위해 메시지를 수신해야하는 시간이 얼마나 오래 되나요? – Daniele

관련 문제