私はメッセージングアプリケーション(WhatsAppなど)に取り組んでおり、その主な機能の実装についてジレンマがあります。クライアント1からクライアント2にメッセージを送信します。メッセージングアプリケーションでAPNを使用する
私は、クライアントがNSURLConnectionを使用してサーバーにメッセージを送信し、サーバーが開いているソケットを保持および管理せず、クライアントの1つに対してメッセージを送信できない集中型サーバー設計を使用していますが、クライアントはタイマーを持ち、2秒ごとにサーバーに照会して、新しいメッセージがそれらを待っているかどうかを確認します。
このアプローチの問題は、2秒おきにサーバーを照会するとバッテリーが非常に早く消滅するようです。そのため、クライアントがAPNSを使用するように照会する代わりに、クライアント1がサーバーにメッセージを送信すると、サーバーはclient2にプッシュ通知を送信し、client2はサーバーからデータをフェッチします。
大量のプッシュ通知を使用する大規模なメッセージングアプリケーションでこのアプローチを使用できますか?
"しかし、ユーザーがあなたのアプリを終了したときに、あなたの好みの方法でAPNS-wayが動作する" - どちらの方法でも、ユーザーがオフラインのときにAPNSを使用する予定だった。私の主な関心事は次のとおりです。1. APNSは、メッセージングメカニズムの中核として使用できるほど十分にラベルを付けましたか? 2.アップルはサーバーから1日に数千または数十万回のプッシュ通知を承認するでしょうか? – Eyal
1.リンゴの「法律」(スパムはなく、広告はありません)を破らなければ、はいです。 WhatApp and co。また、APNSに依存しています。そして、 "非app-foreground"モードでメッセージを受け取ることを望むとき、それを行う他の方法はありません。 2.はい。 APNSの負荷が高いため、アプリを拒否することはありません(ただし、プッシュメッセージのコンテンツはリンゴの観点からは無効です[スパム、広告など]) –