2013-05-03 157 views
5

我正在開發Android應用程序。將有兩種類型的用戶 - 管理員和客戶端。我只是想讓Admin以明文形式發佈一些通知,然後通知客戶。問題是,我應該使用什麼來將通知從管理員傳輸到客戶端。我在Google App Engine和Google Cloud Messaging(GCM)的幫助下閱讀過某些地方,但使用Google App Engine非常複雜。有沒有更好的選擇,我可以使用?將管理員通知給客戶端

回答

1

您可以使用Amazon S3服務。去這裏獲取更多信息:http://aws.amazon.com/s3/

+0

我不知道從哪裏開始。我還沒有做過任何服務器端編程,請你指導我從哪裏開始。 – 2014-04-16 07:46:31

1

如果您閱讀step-by-step guide,Google App Engine非常簡單。

您必須安裝maven:休耕this HOW TO然後閱讀谷歌的指導,並與一些切割和在pom.xml粘貼,你就可以在4小時內寫一些REST Web服務3個班!

我已經在幾個星期前完成了這項工作,並且複雜的事情是生成用於自動用戶驗證的O-AUTH ID! 最後,您還可以生成瘦瘦的Android客戶端來使用您的服務!

如果你知道java,這一切都會很簡單!

這是App Engine的一個簡單的Web服務:

@Api(
    name = "helloworld", 
    version = "v1", 
    scopes = {Constants.EMAIL_SCOPE}, 
    clientIds = {Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID, Constants.API_EXPLORER_CLIENT_ID}, 
    audiences = {Constants.ANDROID_AUDIENCE} 
) 
public class Greetings { 
    public static ArrayList<HelloGreeting> greetings = new ArrayList<HelloGreeting>(); 

    static { 
     greetings.add(new HelloGreeting("ciao world!")); 
     greetings.add(new HelloGreeting("addio world!")); 
    } 

    public HelloGreeting getGreeting(@Named("id") Integer id) { 
     return greetings.get(id); 
    } 
} 
+0

是比Java更好的選擇嗎? – 2014-04-16 08:04:08

+0

你正在使用Java的應用程序權利?所以在任何地方使用它:D Althoug你可以用python或php寫你的後端(但我沒有測試過) – 2014-04-16 08:05:14

+0

但我沒有用過Servlets或任何類型的服務器端編程..我應該從哪裏開始? – 2014-04-16 08:07:11

1

我覺得你最好的選擇確實是Google Cloud Messages。請記住,您實施的任何內容都必須非常相似,那麼爲什麼要重新發明輪子?

如果你不想使用此,有一對夫婦的浮現在我的腦海裏其他的可能性(雖然,正如我所說的,最後他們效仿GCM的行爲):

  • 實施一個Socket在客戶端收聽。這樣,您首先需要確保每個連接的客戶端需要以某種方式(例如,HTTP POST請求)發送一些信號和IP地址,因爲您需要知道連接的位置。這樣,每次您要發送通知時都需要連接到每個設備,通過Socket發送消息並處理超時(例如,如果我嘗試發送消息並且連接被拒絕了X次,我可以考慮,因爲客戶已斷開連接)。

  • 實施集中式「董事會」。通過這種方式,客戶可以連接到集中式通知板(例如HTTP站點),每30秒輪詢一次,並顯示新消息。這樣你就需要保持對已經顯示的消息的控制,並顯示新的消息。這種方法的缺點是,最初它需要任何人都可以訪問(即使他們不使用你的應用程序),但你可以實施一些額外的安全措施來避免它(例如,只允許已註冊的客戶端發送HTTP POST到遠程服務器),否則將它們重定向到錯誤頁面或返回430 Forbidden錯誤。

如果你最後想給一個嘗試GCM(這是比較容易比你想象),我寫了一個彙總到一個一步一步的指導,如何實施該怎麼回答的時候前。

2

谷歌應用程序引擎是完美的GCM推送通知的要求,需要某種形式的服務器。對於另一種選擇,您也可以嘗試探索Parse SDK。

相關問題