我已經從http://code.google.com/p/gcm/下載並設置了Android gcm-client和gcm-demo-server(http服務器)。我設法在我的Android gcm-client應用程序中接收下游消息。我做了以下特徵的多次測試:Google Cloud Messaging(GCM)下行消息延遲
- 服務器使用瀏覽器API密鑰或服務器API密鑰。
- 數據連接是3G或WiFi
- 發送的消息包含/不包含其他數據。
- 發送的消息有/沒有摺疊鍵。
- 發送的消息將delayWhileIdle設置爲false。
- 發送的消息將timeToLive設置爲0或5分鐘。
- 服務器位於歐洲的兩個不同地點。
- Android應用程序在位於歐洲不同地方的兩個設備上運行。
在所有情況下,應用程序會在發送消息25-30秒後收到發送的消息。但是,我測試了其他使用GCM下行消息的Android應用程序,並且在大多數情況下,消息幾乎立即到達(5秒鐘)。
有什麼我可以在客戶端或服務器上進行更改,以便儘快收到應用程序中的消息?
我也嘗試使用在http://developer.android.com/google/gcm/ccs.html中給出的gcm XMPP服務器(使用Smack的Java應用程序),但我沒有設法發送任何消息。我從GCM雲連接服務器(CCS)收到的回覆顯示「項目XXXXXXXXXX未列入白名單」。最可能的原因是我的CCM註冊尚未獲得批准,如Google CCS (GCM) - project not whitelisted中所述。正如我在各種網站上看到的,批准通常需要2-3個月的時間,所以我很可能無法儘快測試XMPP服務器。
是否有可能通過使用XMPP服務器只能接收幾乎即時消息?有沒有人對使用XMPP服務器遇到的延遲有任何經驗?
在此先感謝
你怎麼知道「其他Android應用程序」有延遲「<5秒」?我發現25-30秒非常合理,因爲這種服務能夠向數百萬設備發送/廣播消息。 – Flow
通過測試他們。例如,在短信應用程序中,您可以作爲用戶發送消息,並以另一個用戶的身份接收消息並測量交付時間。 – retset
你怎麼知道GCM參與了消息的傳遞? – Flow