2011-12-27 48 views
-1

我試圖實現的是用戶瀏覽器(用他的Google帳戶登錄)和他的手機上的Android應用程序之間的連接(也用相同的Google帳戶)。我想從GWT發送一堆格式爲JSON的文本到設備,也是相反的。GWT和Android客戶端(或App Engine之間)之間的持續連接

我的第一個想法是發送一個C2DM ping到Android設備,並喚醒一個服務器直接連接到App Engine服務器或GWT客戶端(如果可能的話)。

我現在正在做的是一個帶有從GWT到App Engine的Channel API的套接字。而對於大量的文本,我只是通過通道發送通知給GWT客戶端,然後通過RPCall獲取數據。缺少App Engine和Android應用程序之間的連接。我能做的是一個方向的C2DM和另一個方向的簡單HTTP請求。我不喜歡這個解決方案,因爲C2DM可能真的很慢。有沒有解決方案來連接這兩個(GAE & Android應用程序),或者甚至沒有App Engine和GWT客戶端與Android客戶端之間的連接直接更好?

感謝提前:)

+1

C2DM聽起來正確。有沒有理由不適合你? – 2011-12-27 16:46:27

+0

但有時C2DM可能需要幾分鐘,直到手機接收到ping。我想要的是一種GWT和Android客戶端之間的聊天,我通過這兩種方式發送文本。 – 2011-12-27 19:33:18

回答

0

如果我正確理解你的問題,你從服務器尋找消息(你的情況GAE) Android應用程序沒有使用C2DM?在這種情況下,你可以試一試pubnub

編輯:當然你在這方面有一些選擇(另一個是Urban Airship),但你會注意到它們並不便宜!

0

我不知道你所說的「直接GWT和Android之間的連接」的意思 - 你的意思是一個GWT 客戶和Android手機之間的連接?如果是這樣,沒有安裝客戶端軟件就沒有好的辦法。你需要某種服務器來代理消息。

因此,考慮到您已經使用App Engine和GWT,並且C2DM速度可能太慢,您可以在Android上打包HTML頁面並使用Channel API。然後,當你收到消息時,讓你的JavaScript客戶端(再次,在Android上運行)調用容器來做任何你想要的。

這很好,因爲您的瀏覽器客戶端與Android客戶端之間的消息傳遞具有同等性。這不是很好,因爲它不是原生的,可能會吃電池,不像C2DM。

理想情況下,我知道您希望Android的本機API使用Channel API消息。您可以投票支持這個問題,但我遺憾的是它不能提供埃塔:一個http://code.google.com/p/googleappengine/issues/detail?id=4189

+0

不,我不是說我想在沒有Android應用程序的情況下連接它們。我正在編寫一個GWT客戶端,一個App Engine服務器和一個Android應用程序。 Android應用程序必須是本地的。我將稍微編輯一下這個問題,以便更清楚 – 2011-12-28 10:52:42

相關問題