開始使用 Google-cloud-messaging

Google 雲訊息傳遞:概述

Google Cloud Messaging(GCM) 是一項免費服務,可讓開發人員在伺服器和客戶端應用之間傳送訊息。這包括從伺服器到客戶端應用的下游訊息,以及從客戶端應用到伺服器的上游訊息。

例如,輕量級下游訊息可以通知客戶端應用程式從伺服器獲取新資料,如新電子郵件通知的情況。對於即時訊息傳遞等用例,GCM 訊息可以將最多 4kb 的有效負載傳輸到客戶端應用程式。GCM 服務處理訊息排隊以及與目標客戶端應用程式之間的傳遞的所有方面。

建築概述

GCM 實施包括 Google 連線伺服器,你環境中通過 HTTP 或 XMPP 協議與連線伺服器互動的應用伺服器以及客戶端應用。

建築概述

以下是這些元件的互動方式:

  • Google GCM 連線伺服器接受來自你的應用伺服器的下游訊息,並將其傳送到客戶端應用。該 XMPP 連線伺服器也可以接受來自客戶端應用程式上游傳送訊息並將其轉發到你的應用伺服器。有關更多資訊,請參閱關於 GCM 連線伺服器
  • App Server 上,實現 HTTP 和/或 XMPP 協議以與 GCM 連線伺服器通訊。應用伺服器將下游訊息傳送到 GCM 連線伺服器; 連線伺服器將訊息排隊並儲存,然後將其傳送到客戶端應用程式。如果你實施 XMPP,你的應用伺服器可以接收從客戶端應用傳送的訊息。
  • 客戶端應用是啟用 GCM 的客戶端應用程式。要接收和傳送 GCM 訊息,此應用程式必須向 GCM 註冊並獲取稱為註冊令牌的唯一識別符號。有關如何實施客戶端應用程式的更多資訊,請參閱所用平臺的文件。

關鍵概念

下面總結了 GCM 中涉及的關鍵術語和概念。它分為以下幾類:

  • 元件 - 在 GCM 中起主要作用的實體。
  • 憑據 - GCM 中使用的 ID 和令牌,用於確保所有方都已通過身份驗證,並且訊息將轉到正確的位置。

GCM 元件和憑據。

元件

  • GCM 連線伺服器 - 涉及在應用伺服器和客戶端應用之間傳送訊息的 Google 伺服器。
  • 客戶端應用程式 - 啟用 GCM 的客戶端應用程式,與你的應用伺服器通訊。
  • 應用程式伺服器 - 你在實施 GCM 時編寫的應用程式伺服器。應用伺服器通過 GCM 連線伺服器將資料傳送到客戶端應用程式。如果你的應用伺服器實現 XMPP 協議,它還可以接收從客戶端應用上游傳送的訊息。

證書

  • 發件人 ID
    配置 API 專案時建立的唯一數值。在註冊過程中使用發件人 ID 來標識允許向客戶端應用程式傳送訊息的應用伺服器。

  • 伺服器金鑰
    儲存在應用伺服器上的金鑰,可讓應用伺服器授權訪問 Google 服務。在 HTTP 中,伺服器金鑰包含在傳送訊息的 POST 請求的標頭中。在 XMPP 中,伺服器金鑰在 SASL PLAIN 身份驗證請求中用作密碼以驗證連線。不要在客戶端程式碼中的任何位置包含伺服器金鑰。你在建立 API 專案時獲取伺服器金鑰。

  • 應用程式 ID
    正在註冊以接收訊息的客戶端應用程式。如何實現這是依賴於平臺的:

    • Android :使用應用清單中的包名稱。
    • iOS :使用應用程式的包識別符號。
    • Chrome :使用 Chrome 擴充套件程式名稱。
  • 註冊令牌
    GCM 連線伺服器向客戶端應用程式發出的 ID,允許它接收訊息。請注意,註冊令牌必須保密。

生命週期流程

  • 註冊以啟用 GCM 。客戶端應用程式的例項註冊以接收訊息。有關更多討論,請參閱註冊客戶端應用程式
  • 傳送和接收下游訊息
    • 傳送訊息。應用伺服器將訊息傳送到客戶端應用:
      1. 應用伺服器 GCM 連線伺服器傳送訊息
      2. 如果裝置處於離線狀態,GCM 連線伺服器會將訊息排入並儲存。
      3. 當裝置線上時,GCM 連線伺服器將訊息傳送到裝置。
      4. 在裝置上,客戶端應用程式根據特定於平臺的實現接收訊息。有關詳細資訊,請參閱特定於平臺的文件
    • 收到訊息。客戶端應用程式從 GCM 連線伺服器接收訊息。有關該環境中的客戶端應用程式如何處理其收到的訊息的詳細資訊,請參閱特定於平臺的文件。
  • 傳送和接收上游訊息。此功能僅在你使用 XMPP 連線伺服器時可用。
    • 傳送訊息。客戶端應用程式嚮應用伺服器傳送訊息:
      1. 在裝置上,客戶端應用程式將訊息傳送到 XMPP 連線伺服器。有關客戶端應用程式如何通過 XMPP 傳送訊息的詳細資訊,請參閱特定於平臺的文件。
      2. 如果伺服器斷開連線,XMPP 連線伺服器會將訊息排入佇列並儲存。
      3. 重新連線應用伺服器時,XMPP 連線伺服器會將訊息傳送到應用伺服器。
    • 收到訊息。應用伺服器從 XMPP 連線伺服器接收訊息,然後執行以下操作:
      1. 解析郵件標頭以驗證客戶端應用程式發件人資訊。
      2. ack 傳送到 XMPP 連線伺服器以確認接收訊息。
      3. (可選)解析客戶端應用程式定義的訊息有效內容。

官方文件參考可以在這裡找到。