2011-09-18 5 views
1

채팅 응용 프로그램을 만들려고합니다. 통신은 RESTful 웹 서비스 (Jersey)를 기반으로합니다. 클라이언트는 HTTP 요청을 보내는 서버와 통신합니다. 내 문제는 클라이언트가 먼저 요청을 보내지 않고 서버에서 클라이언트로 메시지를 보내는 방법입니다. C2DM 알림에 대해 읽었을 때, 클라이언트가 서버로부터 알림을 받으면 (클라이언트) 서버에 요청을 보내야 데이터를받을 수 있습니다. 나는 또한 소켓을 사용하는 것에 대해 생각하고 있었지만 나머지는 사용 가능한지 여부를 알 수 없었다. 서버 측에서 REST 코드와 함께 소켓 (저수준에서 실행되는 소켓)을 사용할 수도 있습니까? 소켓을 사용하여 작동 할 수있는 유일한 방법은 소켓이있는 다른 서버 (RESTful 및 소켓 2 개)를 만드는 것이지만이 방법이 좋은 솔루션입니까? 또한 클라이언트 측에 서버 코드를 넣고 서버 측에 클라이언트 코드를 넣을 수도 있습니다. 그것이 정확하고 효과적일까요? 어떻게 생각해? 어떤 솔루션이 가장 좋을까요?클라이언트 (android)가 서버로부터 메시지를 수신합니다. (java)

답변

1

설명하는 시나리오는 C2DM에 이상적이라고 들립니다. 자체 소켓을 구축하면 전화기가 이미 수행중인 작업을 수행하는 배터리 및 CPU 리소스가 소모되어 메시지 수신을 위해 열린 소켓을 유지하게됩니다.

C2DM은 설정하기가 비교적 쉽고 내 경험으로는 꽤 안정적입니다.

이 내가 그것을 본 최고의 튜토리얼 :

http://www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html

그러나 당신은 또한 공식 문서를 읽을 필요가 :

http://code.google.com/android/c2dm/

서버 측 코드가 필요합니다 C2DM 서버에 HTTP 요청을 보내 장치에 메시지를 보냅니다. 메시지를 보낼 위치를 알려면 서버에서 등록 ID (하나의 특정 장치에서 실행중인 앱을 나타냄)를 지정해야합니다. 따라서 앱이 Android 장치에 설정되면 C2DM에 등록한 다음 보내야합니다 귀하의 서버에 C2DM 등록 ID를 저장하여 메시지를 보낼 준비가되었습니다.

+0

에 대한

체크 아웃이 링크를. 나는 PHP 서버를 사용할 필요가있다. 그것은 매우 긴급하다. 단지 내가 현재 프로젝트를 끝낼 수 없기 때문이다. [email protected] 만약 당신이 나를 우편으로 보내면 도움이 될 것이다. 어떤 도움을 주셔서 감사합니다 .... – Sumant

5

2012 년 6 월 26 일부터 Google이 공식적으로 C2DM을 (를) 사용 중지했습니다. 기존 C2DM 개발자는 안드로이드 용 Google Cloud Messaging (GCM)이라는 새로운 버전의 C2DM으로 마이그레이션하는 것이 좋습니다. 유 난 내 안드로이드 응용 프로그램에서 구현할 수없는이기 때문에 당신이 C2DM을 위해 만든 데모 프로젝트를 업로드 할 수 자세한 정보를 올리 @

http://developer.android.com/guide/google/gcm/index.html

관련 문제