Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
109
Help us understand the problem. What is going on with this article?
@itosho

APNS / GCMのリクエスト制限

More than 3 years have passed since last update.

APNS / GCMのリクエスト制限

APNSとGCMでPush通知を行う際に1回のリクエストで送信出来る端末(リクエストサイズ)数には上限があるのですが、どれぐらいだったかすぐ忘れてしまうので備忘も兼ねて。

APNS

(2015年01月18日追記)
iOS8以降の情報をキャッチアップ出来ておらず、ペイロードデータの上限が誤っていましたので、修正しましたm(__)m

(2016年10月28日追記)
iOS9以降の上限について記載しました。

  • iOS8未満の場合、ペイロードデータの上限は256バイトまで。
  • iOS8の場合、ペイロードデータの上限は2Kバイトまで。
  • iOS9以降の場合、ペイロードデータの上限は4Kバイトまで。
  • 1回の通信で全パケットが5000〜7000バイトを超えるとAPNSから切断される?(非公式)
  • パケットの制限はかなり緩いが、速くリクエストしすぎるとエラーになるので、1リクエストあたり10ミリ〜50ミリ秒程度のインターバルを空けたほうがよい?(非公式)

4番目と5番目の情報は非公式かつ相反するものなので、結局は自分で確かめるしかないと思うのですが、"少なくとも秒間9000メッセージは送信出来る"という記載がAppleの公式ドキュメントにあるそうなので、ひとまず、あまり一度に大容量のメッセージを送信せず、ちょくちょくスリープ処理を入れれば問題ないかと思います。

GCM

  • ペイロードデータの上限は4096バイトまで。
  • マルチキャスト送信の場合は最大1000端末まで。

どちらも公式情報なので、安心です。

どうすればよいのか

上記の制限があるので、マルチOS対応の場合サーバアプリは、Pushメッセージは140文字以内(Pushでそんなに長いメッセージは送らないはず⇒Twitterと同じ文字数だけあれば充分では!という理屈)にして、数千台以上に一気に送りたい場合は、GCMに合わせて1000件ずつに分割、かつ、APNSに配慮して各処理の間で0.1秒くらいインターバル空けて、APNS及びGCMにリクエストすればほぼほぼ大丈夫かなと思いますが、他に良き案があれば教えてください。

※参考サイトにもありますが、PHPer御用達のApnsPHPは、デフォルトで1回送った後に10ミリ秒のスリープ処理を入れるようになっているので、その場合はあまり気にしなくてよいかもしれません。

参考サイト

GCM アーキテクチャの概要:
http://www.techdoctranslator.com/android/guide/google/gcm/gcm
これは罠。PHPでiPhone端末にPUSH通知を送る際の落とし穴:
http://liginc.co.jp/programmer/archives/2355
これは罠。PHPでiPhone端末にPUSH通知を送る際の落とし穴」は(一部)罠:
http://norii.hatenablog.com/entry/2013/10/09/021216
Apple Push Notification Service:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

109
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
itosho
NOT FOUND
nanapi
nanapiは、世の中のあらゆる「やり方」を世界一集めることを目指します。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
109
Help us understand the problem. What is going on with this article?