2011-11-24 5 views
0

이것은 일주일 전에 내가 질문 한 질문을 편집 한 것입니다.C2DM "앱 서버"옵션

나는 PC에서 실행되는 타사 PVR 소프트웨어를 제어하기 위해 사용자의 홈 PC와 통신하는 Android 앱을 개발 중입니다. 와이파이/3G - ->Windows 서비스 < - 로컬 호스트 ->제 3 자 PVR 소프트웨어

Windows 서비스 모델은 ...

안드로이드 응용 프로그램 <을 다음과 같다 나 (C#. NET)에 의해 작성되고 안드로이드 애플 리케이션과 PVR 소프트웨어 사이의 프록시 역할을합니다.

다른 사용자에게 알리기 위해 C2DM을 사용하고 싶습니다. 한 예로 가족 중 한 명이 TV 프로그램을 녹화하도록 설정하고 C2DM 메시지가 다른 가족 구성원의 기기로 보내져 모든 사용자가 올라와있는 경우입니다 현재까지.

이제 어떻게 진행할 수있는 3 가지 옵션이있는 것 같습니다. Windows 서비스는 시스템의 핵심 플레이어이므로 모든 부분에 영향을 미치지 만 최선의 접근 방식이 무엇인지 모릅니다.

  1. C2DM 타사 앱 서버로 Windows 서비스를 사용하십시오. 단점 - 소프트웨어에 내 C2DM 자격 증명을 삽입해야하며 인증 토큰을 요청하는 전세계 서버가 100 대가 될 가능성이 있습니다 (Google이 허용하는지 여부는 확실하지 않음).

  2. PHP/MySQL을 사용할 수있는 호스팅 된 웹 서버가 있습니다. Windows Server는 단순히 릴레이 역할을하지만 PHP 사용 경험은 미미하며 C2DM에 대한 포괄적 인 PHP 예제를 찾을 수 없습니다.

  3. Google App Engine (다시 Windows 서비스를 릴레이로 사용)을 사용하십시오. 문제는 Google이 GAE를 C2DM 앱 서버로 사용하는 것에 만족하는지 잘 모르지만 몇 가지 언급을 보았습니다.

기본적으로 Google은 머리를 아프고 동일한 튜토리얼 및 부분 코드 예제로 돌아갈 때까지 Google을 계속 진행했습니다. C2DM이 작동하는 방법을 알고 실제로 내 dev 환경에서 작동하는 옵션 1을 가지고 있지만 좋은 옵션이 대중과 함께 보이지 않는 것 같습니다.

(가능한 한 객관적으로 내 질문을 유지하려고 노력합니다 ...) 옵션 1은 좋은 생각이 아니라는 원칙에 따라 C2DM 앱 서버 또는 거기에 맞는 PHP 예제가 합리적으로 나오는지, GAE가 허용되는 접근 방식이라면 누구나 확실하게 알고 있습니까?

답변

2

C2DM을 사용하면 메시지가 전송되는 장치를 타겟팅 할 수 있습니다. 따라서 TV 프로그램을 설정하는 예제에서는 Windows 서비스에 메시지를 보내어 각 사용자에게 다른 사용자에게 알립니다. 당신은 1 C2DM 서버

UPDATE와

내가 난 당신이 구조에 대한 확실하지 않은 무엇을 말할 수의 3 server.But로 이동 whould 것을 할 수 있습니다. 이제 공유 GAE 나중에 아마 ec2. 실제로 할 수있는 일은 원하는 서버를 가리키는 CNAME을 만드는 것입니다 (덜 하드 코딩 됨). 나는 GAE가 C2DM에 사용될 수 없다고 생각하지 않습니다. HTTP 요청이있는 간단한 서버입니다.

+0

감사합니다. '정상적인'모델은 하나의 클라우드 기반 앱 서버를 보유하고 있지만 쉽게 설정할 수있는 모델은 없다는 것을 알고 있습니다. 나는 내 자신의 도메인 호스팅의 일환으로 웹 서버를 가지고 있지만 PHP를 사용하는 것과 같은 방식으로 충돌 과정을 수행해야한다고 생각한다. – Squonk

+0

예 사용하려면 등록 된 각 장치의 키에 대해 "로컬"DB가 있어야하고 메시지를 보내려면 일부 HTTP 요청이 있어야합니다. 처음에는 조금 혼란 스럽지만 자신의 인프라에서 작동합니다. C2DM은 메시지를 푸시합니다. C#은 잘 작동 할 수 있다고 생각합니다. – weakwire

+0

내 대답이 업데이트되었습니다. – weakwire