APNS を使用して iOS チャット アプリを作成したいと考えています。10,000 人がアクティブで、彼らがチャットを続けている場合、Apple は私の開発者アカウントをブロックしますか? これに関して制限はありますか?
4 に答える
APNS を「チャット アプリ」のバックボーンとして使用することはお勧めしません。
高速なチャット機能が必要な場合は、独自の TCP ソケット ベースのサーバーを作成する必要があります。
数秒ごとの同期が問題ない場合は、HTTP ベースのサーバー バックエンドを使用できます (ただし、すべてのプル同期はネットワーク トラフィックで困難になる可能性があるため、TCP ソケットを使用することをお勧めします)。
ただし、フォールバックに APNS を使用することもできます。特定のデバイス上のアプリが応答しない (つまり、サーバーに接続されていない) 場合、APNS を介して最初のメッセージを送信できます (アプリをウェイクアップし、待機中のメッセージがあることをユーザーに通知するため)。彼)。
ユーザーがアプリを開くとすぐに、TCP ソケットまたは HTTP リクエスト ベースのサーバー通信に戻す必要があります。
あなたの質問については、いいえ、チャットに APNS を使用しているという理由だけで、Apple はおそらく (確実に知ることはできませんが) あなたのアプリを拒否することはありません。ただし、注意してください (他の人がすでに言っているように): 2 人のユーザー間のメッセージは、頻繁にやり取りすると「失われる」ことになります。Roman Barzyczak が提供したリンクを参照してください。
それらをメッセージングに使用できますが、それらが到着するという保証がないことがすぐにわかります. これは、プッシュ通知のブラック ホールとして知られています。;-)
私はここでこの答えが好きです。
まず、APNS のみのソリューションを使用してみてください。プッシュ通知をステートレスにします (「サーバーに新しいものがあります」としてのみ機能します)。
そのため、クライアントがプッシュ通知を受け取ると、サーバーに新しいデータ (メッセージやその他のもの) を要求します。
OneSignalを使用 して、(バックエンドから) プッシュ通知を送信するコードを簡素化します。アプリのユーザーが 10 秒後にメッセージを受け取った場合、TCP、socket.io、xmpp のいずれを使用したかは気にしません...
Whatsapp のメッセージでさえ、到着するまでに数秒かかることがあります。
チャット アプリはリアルタイム ゲームではありません。エンド ユーザーは、数秒の遅延を許容できます。