2014-06-27 64 views
5

我們計劃在Android上使用消息/聊天類應用程序。我們計劃使用GCM交換消息。傳統方法是讓應用服務器存儲用戶的,如果USER1希望將消息發送到用戶2所有gcmid,設備到設備使用android gcm推送通知沒有第三方服務器

1. USER1與包含消息和receipent ID即用戶2 2.應用服務器的有效載荷將消息發送到應用服務器檢索的gcmid user2和呼叫sender.send(regid2,消息) 3.User2接收消息。

我看到它只是一個REST API調用https://android.googleapis.com/gcm/send

因此,如果somhow user1具有user2的gcmid,爲什麼我們不能直接從user1設備調用gcm API來減少服務器上的負載和server.Pls上的操作成本。

注:我們不打算使用上游化

+0

你解決了你的問題嗎?你可以發送數據到另一個android不使用服務器? –

回答

0

所以如果不知何故 USER1具有用戶2的gcmid ...

我想這也正是困難所在。如果您直接從設備調用GCM API,則需要將gcmid從一個設備傳輸到其他設備,到目前爲止,我能想到的最簡單和可擴展的解決方案是使用服務器,從每個設備都可以訪問。

+0

我想在設備上存儲gcm的所有用戶朋友,以減少服務器依賴,從而降低我們計劃運行服務器的GAE的日常維護成本。因此,我想知道它是否是正確的方法直接從Android設備撥打gcm電話 – user2653234

1

我做了相同的使用Device_To_Device_Messaging_Using_Google_Cloud_Messaging_GCM_-_Android_Example教程。這個tut是具有complate服務器以及使用gcm的客戶端代碼。通過它,會幫助你實現你想要的。

+0

感謝您的信息。我們能夠直接通過設備直接通過設備,而無需server.My查詢是abt查詢是否approporiate做這種方式,並在未來預計任何問題 – user2653234

+0

ahhh ,使用它的限制太多了,因爲你無法發送超過4kb的data.push通知需要花費時間,而且你也不能傳輸像audio,video,images.etc這樣的文件。 – Dev

+0

您建議的示例仍在使用服務器。這是如何解決問題的? –

相關問題