Android GCM パラメーター、リミットについてなど

Android

Android GCM パラメーター、リミットについてなど

下記のAndroid developer公式サイトの要点を、まとめてみたので掲載しておきます。私が思うところの要点なので、抜けているところもあります。
http://developer.android.com/guide/google/gcm/adv.html

collapse_keyについて

collapse_key flagをONにしておくと、古いメッセージは廃棄されて、新しいメッセージにとって代わる
collapseなしでストアできる上限は100個
それ以上は廃棄される
collapse_keyについては、下のメッセージタイプにも関わる重要なパラメーター

GCMに端末が接続していない場合

GCMに端末が接続していない場合は、GCMに接続するまで待つ
delay_while_idle flag.をONにしてもしなくてもこれは同じ

たとえば工場出荷時に戻されるなどして、2度とGCMに接続されない場合、4週間は保存される

アプリケーションがインストールされていない端末に接続しようとした場合は、メッセージを廃棄して、registration IDを不正なものにする

スロットル

一度に大量のメッセージが送られないように、スロットルという仕組みがあり、大量にメッセージが送られた場合は、少し遅延時間が発生する

アプリのアップデートやリストア時

アプリケーションがアップデートされる場合は、registration IDが同一である保証はない
推奨されるのは、アプリケーションのバージョンを3rdパーティーのサーバーでも保存しておいて、バージョンが新しくなった場合はregistrationのプロセスをもう一度やらせるなどの対策が必要
同じく、バックアップやリストアで戻った場合、registration IDは違うものになる可能性あり

リトライについて

com.google.android.c2dm.intent.REGISTRATIONがエラーを受け取った場合は、だんだん時間間隔が長くなりながら、リトライする

GCMサーバーからの登録削除について

アプリのアンインストールでGCMサーバーからunregisterされる
ただ、これには多少の時間がかかる
なので、3rd partyでメッセージを送信した時に、NotRegisteredとなって帰ってくる場合もある

メッセージの送信できる上限

4096 bytesまでの送信が可能

“send-to-sync” (collapsible)型と
“message with payload” (non-collapsible message) 型のメッセージと2種類ある
Collapse key で切り替える

“send-to-sync”はたとえば、emailのアプリケーションで、25通メッセージを受け取ったら、25回メッセージは不要で、1回でいいのと同じ

“message with payload”はIMのようなメッセージ。
毎回違うメッセージを表示する、など
Collapse keyを省略すべし
GCMサーバーは100メッセージまでこの”message with payload”をためておける

“send-to-sync”の方が、バッテリーやパフォーマンスの点で軽いので、よろしい

メッセージの複数同時送信できる上限

同一のメッセージを、複数の宛先に送信することが可能。
1から1000まで。

メッセージの有効期限をつけられる

time_to_liveパラメータを利用
期限付きの招待状やチャットのお知らせなど、短い時間しかメッセージが必要でないなどの際に利用

0 to 2,419,200秒まで設定できる
たとえば、これを0に設定しておくと、フルスロットルでメッセージを送信してくれる
しかし、サーバーにはためてくれないので、送信できなかった場合はすぐ消えてしまう。

複数の送信者を設定できる

送信者は100まで。

Android GCMでメッセージを送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です