2014-12-02 2 views
1

Google은 Android 앱에 푸시 알림을 사용하고 있습니다. 일일, 우리는Android 앱의 GCM 응답 코드를 해석하는 방법은 무엇인가요?

-39 messages with the GCM response code of HTTP 200 - OK and 
-16 messages with the GCM response code of HTTP 200 - Not Registered 

우리가 앱이 설치 제거의 수와 관련 "등록하지"않는다보고있다?

또한, OK 상태로 (39) 내에서, 우리는보고있다 :

-30 are "Stored" 
-9 are "Sent" 

저장 및 전송의 차이는 무엇입니까? 저장된 메시지는 앱이 오프라인이어서 아직 전송되지 않았 음을 의미합니까? 이것에 대한 다른 설명이 있습니까?

답변

1

이 공식 안드로이드 GCM의 문서

에서입니다 "하면 타사 서버 GCM에 게시물 메시지를 다시 메시지 ID를 수신하면 메시지가 이미 장치에 전달 된 것을 의미하지 않는다. 오히려를

가장 좋은 시나리오는 장치가 GCM에 연결되어 있고 화면이 켜져 있고 거기에있는 경우입니다. 더 제한 제한 (스로틀 참조), 메시지가 바로 전달되지 않습니다 있습니다.

데비하는 경우 ce가 연결되었지만 유휴 상태 인 경우 delay_while_idle 플래그가 true으로 설정되어 있지 않으면 메시지가 즉시 전달됩니다. 그렇지 않으면 기기가 깨어날 때까지 GCM 서버에 저장됩니다. 그리고 이것이 바로 collapse_key 플래그가 역할을하는 곳입니다. 동일한 축소 키 (및 등록 ID)가 저장되어 있고 전달을 기다리는 메시지가 이미있는 경우 이전 메시지가 삭제되고 새 메시지가 대체됩니다 (즉, 이전 메시지는 새 메시지로 축소됩니다). 그러나 접기 키가 설정되지 않은 경우 새 메시지와 이전 메시지가 둘 다 향후 배달을 위해 저장됩니다. 접을 수있는 메시지는 보내기 - 동기화 메시지라고도합니다.

참고 : 붕괴하지 않고 저장할 수있는 메시지 수에 제한이 있습니다. 제한은 현재 100입니다. 한계에 도달하면 저장된 모든 메시지가 삭제됩니다. 그런 다음 장치가 다시 온라인 상태가되면 한계에 도달했음을 나타내는 특수 메시지가 수신됩니다. 그런 다음 응용 프로그램은 일반적으로 전체 동기화를 요청하여 제대로 상황을 처리 할 수 ​​있습니다. "http://developer.android.com/google/gcm/adv.html

+0

우리는 메시지의 대부분을보고있는 참조하시기 바랍니다 자세한 내용은

저장에. 저장에 현재 그래서 메시지를 – sharataka

+0

@sharataka 예, "time_to_live"기간 동안 장치가 깨어 나면 저장된 모든 메시지를받습니다 (저장된 메시지 수가 100 미만인 경우). 장치가 있으면 모든 저장된 메시지가 삭제됩니다 "time_to_live"기간 후에 깨어납니다. – Samik

관련 문제