質問: iOSチャットアプリケーションの設計、エンドユーザーへのメッセージの送信/中継 デザインの質問があります。特にiOS(iOS Chat Application)用のチャットアプリケーションの作成を担当していたとしましょう。話を簡単にするために、一度に1人の人としかチャットできないとします(グループチャット機能はありません)。 それでは、電話機Aから電話機Bにエンドユーザに直接メッセージを送信するにはどうすればよいでしょうか。 明らかに、いくつかのAPI呼び出しを含むWebサービス層があります。利用可能なAPI呼び出しの1つは `startChat()`です。チャットを開始した後、メッセージを送信するときは、もう一度非同期呼び出しを行います。それを `sendMessage()`とし、メッセージと一緒に文字列を渡します。 Webサービス層に送信されると、メッセージはデータベースに保存されます。 これが私が現在立ち往生している場所です。メッセージがWebサービス層に送信された後、メッセージをエンドユーザーに送信/中継するにはどうすればよいでしょうか。 Webサーバーがエンドユーザーにメッセージを送信して通知するか、または各クライアントが `receiveMessage()`メソッドを定期的に呼び出す必要があります。その情報? 最後に、メッセージを送信しようとしているユーザーがオフラインの場合をどのように処理できますか。エンドユーザーが信号のあるエリアに戻ったときに、パケットを確実に受信するにはどうすればよいでしょうか。
回答: APNSはこれを行うための最も明白な方法です。それはあなたが中央サーバーを必要とすることを意味します、そしてそれはあなたが期限切れのトークンを片付けることが期待されているようにそれはまたあるメンテナンスがあることを意味します。証明書の発行に関してはAppleへの登録もありますが、それほどストレスがありません。注意すべきことの1つは、比較的低い文字数制限です。