0

Wi-Fi 네트워크를 사용하는 기기에서 간혹 알림을 수신하도록 인터넷 연결을 새로 고쳐야합니다. 즉각적인 알림 만 수신하도록 time_to_live = 5을 설정했습니다. gcm 서버와 장치의 연결이 끊어진 것 같습니다. 그러나 Wi-Fi 인터넷을 새로 고침하자마자 알림이 제대로 시작됩니다. 이것은 알림을 받기 위해 인터넷 연결을 새로 고침해야하기 때문에 이상하고 실질적으로 신뢰할 수 없습니다. 이 점에 대해 도움을주십시오! 미리 감사드립니다.wifi 네트워크를 사용하는 기기에 Gcm 알림이 수신되지 않는 경우가 있습니다.

+0

http://stackoverflow.com/questions/20513927/android-gcm-sent-successfully-but-not-received-on-some-devices이 책을 읽었습니까 ?? –

+0

예 읽었습니다. 하지만 제 상황은 완전히 다릅니다. 모든 장치에서 알림을 수신하지만 때때로 gcm 서버와의 연결이 끊어 지므로 gif 서버에 다시 연결하기 위해 wifi 연결을 새로 고쳐야합니다. –

+0

'delay_while_idle = false'를 시도 했습니까? –

답변

1

제품 포럼 - Push notifications delayed, Hearbeat Interval not reliable에서이 문제에 관해서 읽었습니다. 이전 스레드에 따르면 :

Android 푸시 알림은 휴대 전화와 Google 서버 사이의 포트 5228에서 하나의 TCP 연결을 통해 작동합니다. 이 연결은 전화가 네트워크에 연결될 때 설정됩니다. 모든 안드로이드 푸시 애플리케이션 (gmail, whatsapp, 행 아웃 등)은 GCM (Google Cloud Messaging)을 사용하여 연결을 생각한 푸시 알림을 보내고받습니다.

정의에 따르면 TCP 연결에는 시간 초과가 없습니다. 그러나 현실 세계에서 Wi-Fi 라우터와 이동 통신사는 열린 tcp 연결 수를 제한하는 몇 가지 규칙을 가지고 있습니다. 그래서 그들은 보통 패킷이 전송되지 않는 몇 시간 후에 비활성 연결이라고 생각하는 것을 닫거나 죽입니다. 예를 들어 나의 WiFi 라우터는 300 초 (5 분) 동안 사용하지 않으면 (TCP 연결에서 패킷 없음) 접속을 종료합니다.

그런 다음이 Google 스레드 (Delay in getting GCM notification)에는이 특별한 사례가 GCM의 버그가 아니며 과도하게 열렬한 라우터라고 나와 있습니다.

그것을 해결하려면 :

우리는 우리가 (무료입니다) 핑과 함께 살아 GCM 서버에서 2 분마다 연결을 유지할 수 발견했다. 배터리 수명을 최소화하기 위해 내부 알람을 정렬해야하는 것과 동일한 배터리 수명을 유발하는 15 분 타이머가 의심되는 경우 배터리 수명에 영향을 줄 수 있습니다. 이 문제를 해결 하나 FCM로 업그레이드를 제안 Do not receive GCM message while android device bein connected to WIFI을 어쩌면 너무 당신을 위해 작동합니다 - 내 검색과 함께

, 나는이 SO 후 발견했다.

관련 문제