2017-02-16 1 views
1

FacebookのようなソーシャルiOSアプリを作成しています。私は現在、新しいデータがある場合にアプリ内の何かを更新するためにプッシュ通知を使用する予定です。新しい友人のリクエストや投稿があった場合、タブバーバッジのような更新情報が追加されます。ただし、ユーザーがプッシュ通知を無効にした場合はどうなりますか?ユーザーはこのアップデートをどのように受け取るでしょうか?プッシュ通知なしで、残りのAPIから自動的にアップデートを取得する効率的な方法は何ですか?

私の提案されたソリューションは、以下のとおりです。

  • は、バックグラウンドでタイマーを実行するには、そのサーバーに更新をポーリングします。
  • リフレッシュ機能をいくつか適用します。

私の最初の問題は、リソースが特にネットワークを頻繁に頻繁に使用していることです。

2つ目は、更新をプルするときにのみ更新が利用可能になることです。

アップデートや新しいデータを入手するとすぐに効率的にデータを取得する方法はありますか?

+0

多分apiからのすべての単一の応答で通知量を送ることができます(GETリクエストごとに余分な行のように)。 notificationAmount> 0の場合は、APIから「getNotifications」のようなメソッドを呼び出すことができます。 –

+0

FirebaseにはFCMメッセージがあり、ユーザーがプッシュ通知を許可していなくても機能します。もう一つの可能​​なアプローチですが、重負荷でどのように動作するかはわかりませんが、双方向通信を実装するMQTTプロトコルです。 –

答えて

0

このためには、オブザーバーパターンに従う必要があります。オブザーバーパターンは、1人のユーザーがアクションを発行し、他のユーザーが発行されたアクションをリッスンし、必要なアクションを実行する場合に機能します。

あなたはバース(サービスとしてバックエンド)https://firebase.google.comとしてFirebaseを使用することによってこれを行うことができます。または、アプリが開いているときにあなたのアプリと常に通信する独自​​のsocket.ioサーバーを作成します。したがって、データベースに変更が加えられるとすぐに、ユーザーはメッセージによって通知され、変更されたデータを更新します。

これはどのように機能しますか? 1つのクライアントがメッセージを聞いている - (「更新」)、あなたが通知されます - クライアントがメッセージを聞いていると 3(「更新」) - 2データベースが変更され、サーバーがメッセージを発する(「更新」)変更されたデータを変更または更新することができます。

ありがとうございました。 明確でない場合は質問をしてください。

+0

クライアントがサーバを恒久的にリッスンしている場合、ネットワークリソースを頻繁に使用することはありませんか? –

+0

こんにちは、ありがとうございました。私は、バックエンドの残りのAPIとしてPythonを使用する予定ですが、バックエンド自体がアプリケーションと同期する必要があることに気付きました。私はこのリンクを使って、どのバックエンド・フレームワーク(この記事ではdjangoです)をnodejsでredisを使ってDjangoでブリッジし、高価なものやnodejをリアルタイムに更新する方法について説明しました。ここにリンクがあります:http://www.cuelogic.com/blog/how-to-use-both-django-nodejs-as-backend-for-your-application/ –

+0

私は2つのバックエンドをマージするような何かをしようとしていません以前は唯一の解決策だったら試してみると思います。私はちょうどそれがどのようにその赤ちゃんのことで特にうまくいくのか全く分かりません。記事の概要を教えてください。 –

0

私はあなたがレルムモバイルプラットフォームを使用することをお勧めします。これは、バックエンドロジックと任意のsyncロジックのための余分な努力を削減する、最新かつ驚くべきテクノロジーです。

この詳細については、thisをご覧ください。

そして、驚くべき部分は、それは絶対に無料でオープンソースです。

関連する問題