Apple APNS はサーバーからの最大接続数までしか許可しない20
のに、WhatApp のようなアプリはどのようにして 1 秒間にこれほど大量のメッセージを配信できるのでしょうか?
複数のサーバーを使用することもできますが、メッセージを送信するアクティブなユーザーが 500 万人いると仮定すると、250,000 のサーバーも必要になります。
ここでのトリックは何ですか?
Apple APNS はサーバーからの最大接続数までしか許可しない20
のに、WhatApp のようなアプリはどのようにして 1 秒間にこれほど大量のメッセージを配信できるのでしょうか?
複数のサーバーを使用することもできますが、メッセージを送信するアクティブなユーザーが 500 万人いると仮定すると、250,000 のサーバーも必要になります。
ここでのトリックは何ですか?
非常に単純です。ユーザーごとに 1 つの接続は必要ありません。
APNS 接続ごとに複数のメッセージを送信できます。各メッセージは、異なるデバイスに送信できます。ペイロードの最大長は、256 バイトに 45 バイトのオーバーヘッドを加えたものです。10Mbit 接続は、1 秒あたり少なくとも4100 メッセージ、または約 250k/分、またはユーザーごとに 1 時間あたり約 3 メッセージを処理できます。
平均的な「アクティブ ユーザー」は 1 時間に 3 回以上送信していますか? わかりにくいです。「アクティブ」とは、その月にメッセージを送信したことを意味する場合があります。そのような分布には非常に長い裾があります。
いずれにせよ、それは単一の10M 接続用です。Apple 側にどれだけの論争があるかはわかりませんが、大騒ぎせずに 50M を超えることができたとしても、私は驚かないでしょう。
さらに、アプリがフォアグラウンドにあるときはほぼ確実に独自のサーバーを使用し、巧妙であれば、アプリがバックグラウンドになった後も数分間接続を開いたままにすることができます (接続が閉じたらプッシュ通知のみを使用します)。