2011-11-24 140 views
0

這是我在一週前詢問的一個問題的編輯。C2DM「應用程序服務器」選項

我正在開發一個Android應用程序,它可以與用戶的家用PC進行通信,以控制PC上運行的某些第三方PVR軟件。該模型如下...

Android應用 < - 無線/ 3G - >Windows服務 < - 本地主機 - >第三方軟件PVR

Windows服務是由我(C#.NET)編寫的,充當Android應用程序和PVR軟件之間的代理。

我想要做的是使用C2DM通知用戶各種各樣的事情 - 例如,如果一個家庭成員設置電視節目進行錄製,則將C2DM消息發送給其他家庭成員的設備,以便每個人都可以至今。

我現在似乎有3種可能的選擇如何繼續。 Windows服務是系統中的關鍵角色,因此它們都參與其中,但我不知道最佳方法是什麼。

  1. 使用Windows服務的C2DM第三方的應用服務器。下行 - 我需要將我的C2DM證書嵌入到軟件中,全球將有100多臺服務器要求認證令牌(不確定Google是否允許)。

  2. 我有一個託管的Web服務器,我可以使用它允許PHP/MySQL。 Windows Server只是作爲一箇中繼,但我的PHP經驗很少,而且我找不到任何有關C2DM的全面的PHP示例。

  3. 使用Google App Engine(再次將Windows服務作爲中繼)。問題是我不知道Google是否對GAE被用作C2DM應用服務器感到滿意,儘管我已經看到了一些提及的內容。

我已經基本Google'd,直到我的頭痛,並繼續回到相同的教程和部分代碼示例。我知道C2DM是如何工作的,並且實際上有我的開發環境中的選項1,但它似乎不是一個公開的好選擇。所以(試圖儘量保持我的問題儘可能客觀)...工作的原則是選項1不是一個好主意,是否有任何C2DM應用服務器的合理全面的PHP示例,或者,沒有人知道如果GAE是一種可接受的方法嗎?

回答

2

通過C2DM,您可以將消息發送到的設備作爲目標。因此,在你的例子中,設置電視節目的人向Windows服務發送消息以通知每個其他用戶。 你可以做到這一點與1個C2DM服務器

UPDATE

我用對子級的我可以告訴你不知道的結構的第3 server.But去。現在分享現在GAE也許最後ec2。你真正能做的是創建一個指向所選服務器的CNAME(不太硬編碼)。我不認爲GAE不能用於C2DM。這是一個帶有http請求的簡單服務器。

+0

謝謝 - 我明白'正常'模型是有一個基於雲的應用程序服務器,但我沒有一個可以輕鬆設置的模型。我有一個網絡服務器作爲我自己的域名託管的一部分,但我感覺我需要做一些像PHP這樣的速成課程來使用它。 – Squonk

+0

是的使用它你必須有一個「本地」數據庫,用於註冊每個設備的密鑰和一些http請求來發送消息。起初有點令人困惑,但是您可以從您自己的基礎架構進行操作。 C2DM只是推送消息。 C#可以正常工作,我認爲 – weakwire

+0

更新了我的答案 – weakwire