2014-07-25 4 views
-1

WhatsApp 나 Viber와 같은 메시징 앱을 만들고 싶다고합시다. 메시지를 보내려면 사용자 A에서 서버로, 그리고 서버에서 사용자 B로 메시지를 전송해야합니다. 질문은 사용자 B가 서버에 새 메시지가 있다는 것을 어떻게 알 수 있습니까? 한 가지 해결책은 매초마다 새 메시지를 서버에서 확인하는 것입니다. 그러나이 솔루션은 성능 문제를 일으킬 수 있습니다.웹 서버에서 Android 앱에 데이터를 보내는 방법은 무엇입니까?

이 문제를 해결하는 가장 좋은 해결책은 무엇입니까? 주기적으로 서버를 확인하지 않고 웹 서버에서 Android 앱으로 데이터를 보내는 방법은 무엇입니까?

어떤 클래스 나 기술이 필요하며 샘플 코드가 필요한지에 대한 단서가 있으면 크게 감사하겠습니다. 미리 감사드립니다.

+1

Google 클라우드 메시징은 C2DM과 다릅니다. Google Cloud Messaging은 GCM으로 축약되었으며 **는 ** 기본 솔루션입니다. C2DM은 더 이상 사용할 수 없습니다. – tar

답변

0

오른쪽, 주기적으로 또는 "폴링"백 엔드는 높은 배터리 사용량, 높은 대역폭 사용 및 높은 백엔드 리소스 사용 등 여러 가지 이유로 이상적이지 않습니다.

"모바일 앱에 데이터 전송"의 이름은 "푸시 알림"입니다.

Android에는 플랫폼과 관련된 모든 저급 통신을 처리하는 Google 클라우드 메시징 (GCM)이 기본적으로 지원됩니다. 설정하는 데 앱을 Google에 등록하여 GCM "API 토큰"을 얻으면 앱에서 휴대 전화의 "기기 ID"를 가져 와서 웹 서버 또는 다른 백엔드로 넘깁니다. 백엔드가 푸시를 보내려고하면 Google에 접속하여 메시지와 함께 장치 ID를 전달합니다. Google은 휴대 전화로 메시지를 전달하여 앱에서 청취하고 조치를 취할 수 있습니다.

공식적인 이야기는 Google Cloud Messaging website을 참조하십시오. 애플리케이션 (클라이언트)을 수정하여 푸시를들을 수 있도록하는 예제와 웹 서버를 작성하여 앱에 푸시 (push)를 보낼 수있는 방법을 찾을 수 있습니다.

GCM은 매우 빠르기 때문에 성능이 우선 순위 일지라도 좋은 선택입니다. 내 경험에 따르면 푸시는 내가 백엔드에서 요청을 보낸 후 잠시 안정적으로 수신됩니다. GCM은 여러 가지 요인에 따라 통과하지 못할 수 있습니다. 멋진 디자인으로 취급하십시오. 전체 디자인이 맡은 핵심 구성 요소가 아닙니다.

아, 무료입니다.

0

Pubnub api의 성공과 메시지 전달 시간이 1/4 초 미만입니다.

관련 문제