0

我想構建一個Android應用程序,將來自無線傳感器(約3 kb/s)的數據傳輸到我的服務器。使用GCM可以流式傳輸數據嗎?

要喚醒手機,事實證明我不能輕易使用我的服務器上的套接字,但需要GCM推送通知。但是,如果我只是爲了開始流式傳輸而實現所有GCM,那麼也可以更容易地將GCM用於數據流,而不是我自己的websocket實現。

文檔說一個數據包可以是最大4 kb,如果設備每秒可靠地傳輸它們,那應該就足夠了。但是由於GCM不是爲這樣的快速間隔和帶寬設計的,任何人都有經驗,如果它是可行和可靠的,還是更好地直接連接到我的服務器呢?

+0

這是不可行的。無法保證郵件何時發送。實際上,延遲可以從幾乎瞬間變化到幾十分鐘。 – NickT

回答

0

我會直接連接到您自己的服務器,主要是因爲如您所說,GCM服務並非真正爲此設計的,並且Google有權限阻止連接並延遲GCM通知,如果他們認爲您正在使用太多的帶寬。在進行壓力測試時,我自己也經歷過這種情況 - 通知開始放慢速度,最終gmail帳戶所使用的設備被禁止。

類似

的GCM一般模式應該是:

  1. 有事,該設備​​需要知道服務器上。

  2. 一個GCM通知被髮送到具有小負載的設備,例如CommandNumber = 1。

  3. 設備偵聽通知,並且由於CommandNumber == 1以某種方式響應,在這種情況下可能會打開套接字到您的服務器。

+0

這個選項的問題是,如果我們公司將來不得不關閉它的服務器,那麼這個應用程序也將停止運行。我正在尋找一種將消息發送給應用程序的其他實例的方法,如果它完全基於GCM,則不需要我們繼續使用服務器來僅對隧道進行通信。 – Muis

相關問題