2

私のAndroidアプリは現在、django rest frameworkで構築されたWebサービスとHTTP通信にVolleyを使用しています。バックエンドはMySQLデータベースとPythonで構成されています。データベースが変更されたときにAndroid UIを更新する

アプリは同じページを更新する複数のユーザーで構成されます。このページをリアルタイムで更新してほしいです。データベースの更新が(Webサービスを介して)行われている場合、それらの更新を接続されたすべてのクライアントにプッシュしたいと思います。サーバーをポーリングするのではなく、クライアントにデータをプッシュすることをお勧めします。

データベースをAndroid UIに同期させるために推奨されるアプローチは何ですか?ここで

は、私が遭遇したオプションの一部です:

Android Sync Adapter

Firebase Cloud Messaging (私はこのルートを行けば、私は自分のデータベースを移行する必要があります?)

PubNub

Volleyでこれを達成する方法はありますか?

+0

その他のオプションがあります。例えば、MQTT(AndroidクライアントライブラリのEclipse Pahoを参照してください) – mjn42

+0

Volleyの私の理解から、それはアンドロイド用のreq/respライブラリであり、データを取得することとは関係ありません。私はあなたがボレーと何をしたいのかを達成できるとは思わない。あなたが投票したいが、上記の質問に基づいていない限り、私はあなたがそれをしたいと思うかどうか疑問に思う。 –

+0

可能な複製http://stackoverflow.com/questions/1378671/push-notifications-in-android-platformおよびhttp://stackoverflow.com/questions/1243066/does-android-support-near-real-time-プッシュ通知/ – k3b

答えて

1

私はあなたがリアルタイムデータ管理のPubNubを使用することをお勧めします。次に、ローカルに耳を傾けるイベントを発射する放送受信機、EventBusまたはオットーのいずれかを使用します。私はそれをもう少し説明しましょう。

データベースでCRUD操作が成功した場合は、PubNubサーバーに公開できます。これは加入者であるクライアントにも発せられます。あなたのアプリケーションでは、実行中のアンドロイドサービスを持っていて、受信しているパブナブイベントをリッスンして処理します。この時点で、EventBusまたはOttoを使用してアプリケーション内のローカルイベントを起動し、それらのイベントに反応するビューを作成できます。イベント管理を分離することを提案している理由は、リアルタイムデータプロバイダを変更すると、アプリケーション全体ではなくアンドロイドサービスにカプセル化されているため、アプリケーションでのコード変更はほとんど必要ありません。

+0

質問は、リモートWebサービス上のデータベースを更新し、他のアンドロイドクライアントに変更について通知することです。 PubNubがWebサーバー上で動作し、アンドロイドデバイスにブロードキャストを送信できることを確かめていますか? – k3b

+0

私が知る限り、はい。私はちょうどPubNubナレッジベースに行って、これを見ました:https://www.pubnub.com/knowledge-base/discussion/296/can-i-publish-a-message-via-a-database-trigger。私がいなければ私はこの例に基づいてかなり簡単だと思う質問を完全に誤解しました。 –

+0

@ The Code Pimp - はい、そのKB記事の先頭に* NOTE *だけ注目してください。そして、アプリがバックグラウンドであるか、または実行されていないときにデバイスがアップデートを取得できるように、FCM(以前のGCM)プッシュペイロードでdbアップデートをパブリッシュできます。 –

関連する問題