Параметры сервера приложений C2DM

Это редактирование вопроса, который я задал около недели назад.

Я работаю над приложением для Android, которое взаимодействует с домашними ПК пользователей, чтобы управлять некоторыми сторонними программами PVR, работающими на ПК. Модель выглядит следующим образом...

Приложение для Android ‹ - wifi/3g -> Служба Windows ‹- localhost -> Программное обеспечение PVR сторонних производителей

Служба Windows написана мной (C# .NET) и действует как прокси между приложением Android и программным обеспечением PVR.

Что я хотел бы сделать, так это использовать C2DM для уведомления пользователей о различных вещах — например, если один член семьи устанавливает запись телешоу, сообщение C2DM отправляется на устройства других членов семьи, чтобы все были в курсе.

Теперь у меня, кажется, есть 3 возможных варианта дальнейших действий. Служба Windows является ключевым игроком в системе, поэтому играет роль во всех них, но я не знаю, каков наилучший подход.

  1. Используйте службу Windows в качестве стороннего сервера приложений C2DM. Недостаток — мне нужно встроить свои учетные данные C2DM в программное обеспечение, и потенциально сотни серверов по всему миру будут запрашивать токены аутентификации (не уверен, что Google позволит это).

  2. У меня есть размещенный веб-сервер, который я мог бы использовать, который позволяет использовать PHP/MySQL. Windows Server будет просто действовать как ретранслятор, но мой опыт работы с PHP минимален, и я не могу найти подробных примеров PHP для C2DM.

  3. Используйте Google App Engine (снова со службой Windows в качестве ретранслятора). Проблема в том, что я не знаю, доволен ли Google тем, что GAE используется в качестве сервера приложений C2DM, хотя я видел несколько упоминаний об этом.

В основном я гуглил, пока у меня не заболела голова, и продолжаю возвращаться к одним и тем же учебникам и частичным примерам кода. Я знаю, как работает C2DM, и на самом деле у меня есть вариант 1, работающий в моей среде разработки, но это не кажется хорошим вариантом для публикации.

Итак (пытаясь сохранить мой вопрос как можно более объективным)... работая по принципу, что вариант 1 не является хорошей идеей, существуют ли какие-либо достаточно полные примеры PHP для сервера приложений C2DM или, в качестве альтернативы, кто-нибудь знает окончательно если GAE является приемлемым подходом?


person Squonk    schedule 24.11.2011    source источник


Ответы (1)


С помощью C2DM вы можете настроить таргетинг на устройство, на которое отправляется сообщение. Итак, в вашем примере тот, который устанавливает телешоу, отправляет сообщение в службу Windows, чтобы уведомить каждого из других пользователей. Вы можете сделать это с 1 сервером C2DM

ОБНОВИТЬ

Я бы пошел с 3-м сервером. Но из того, что я могу сказать, вы не уверены в структуре. Поделился сейчас GAE позже, может быть, наконец, ec2. На самом деле вы можете создать CNAME, указывающий на выбранный сервер (менее жестко запрограммированный). Я не думаю, что GAE нельзя использовать для C2DM. Это простой сервер с http-запросами.

person weakwire    schedule 24.11.2011
comment
Спасибо. Я понимаю, что «нормальной» моделью является наличие одного облачного сервера приложений, но у меня нет сервера, который можно было бы легко настроить. У меня есть веб-сервер как часть моего собственного доменного хостинга, но я чувствую, что мне нужно пройти ускоренный курс по чему-то вроде PHP, чтобы использовать его. - person Squonk; 24.11.2011
comment
Да, чтобы использовать его, у вас должна быть локальная БД для ключей каждого зарегистрированного устройства и некоторые http-запросы для отправки сообщений. Поначалу это немного сбивает с толку, но вы работаете из своей собственной инфраструктуры. C2DM просто отправляет сообщения. С# может работать нормально, я думаю - person weakwire; 24.11.2011