5

Android GCM ドキュメントでは、ペイロードは最大 4096 バイトの制限であると記載されています。

ペイロードの 4096 バイトには、registration_id の長さが含まれていますか? ペイロードが 16038 バイト (registration_id を含む) のメッセージを送信できることがわかりました。

4

2 に答える 2

7

登録 ID は含まれません。

補足資料を提供できなくて申し訳ありません。GCM のドキュメントには明確に記載されていません。ただし、この動作を確認するためにテストしました。私が提供できる唯一の「証拠」は、マルチキャスト メッセージに最大 1000 の登録 ID を含めることができるということです。1000 の登録 ID は明らかに、ペイロードの 4096 バイトに収まりません。

http://developer.android.com/google/gcm/gcm.htmlから:

登録ID

メッセージを受信するデバイス (登録 ID) のリストを含む文字列配列。少なくとも 1 つ、最大で 1000 の登録 ID が含まれている必要があります。マルチキャスト メッセージを送信するには、JSON を使用する必要があります。1 つのメッセージを 1 つのデバイスに送信するには、登録 ID が 1 つだけの JSON オブジェクトまたはプレーン テキストを使用できます (以下を参照)。必須。

于 2012-12-04T18:23:45.210 に答える
0

受け入れられた回答を完成させる。私はこれをテストしており、結果は次のとおりです。

ペイロードの最大長は 4096 バイトです。JSON を使用している場合、メッセージは次のようになります。

{
  "to" : "APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A",
  "data": {"a":"Some information. Only this part inside data counts as payload"}
}

ペイロードとしてカウントされるメッセージの唯一の部分は、「データ」内の部分です。これは、複数のデバイスに送信している場合でも当てはまります。

{
  "registration_ids" : ["APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A",
                        "APA91bGbkLeRLD228BKYQy4syvAYd5ErYiHup5FzofY_8x5CNHmhMlB65CaCHj9ntm7zcMhzDEkd9vi6rxM89cRzPuDLPrlX8UgYExGQ3LmakGTKpkIS0CE9-9tinlIRLMiLoGKDn5jVvks0njvcGFPJSHBn23cd-A"]
  "data": {"a":"Some information. Only this part inside data counts as payload"}
}
于 2015-09-24T14:54:08.843 に答える