2017-03-14 10 views
1

現在、データベースが変更されたときにリモートでイベントを発生させるために使用できるテクノロジを理解しようとしています。アンドロイドアプリケーションとデスクトップJavaFxアプリケーションの両方が、同じデータベースを介して通信します。デスクトップ側からデータが変更された場合、Androidで変更が発生した場合は、Androidにデータを更新し、その逆の場合も同様です。 DBを定期的にポーリングすることなくこれを達成する方法はありますか?データベースが変更されたときにAndroidおよびDesktop Javaでイベントが発生する

私はFirebaseを見て、それは完璧だと思ったが、デスクトップのJavaライブラリがなかった。同様に、Amazon AWS LambdaとDynamoDBを試してみましたが、DynamoDBテーブルが変更されたときにLambda関数を起動できます。しかし、ラムダ関数がデータが変更されたAndroid/Desktopアプリケーションを更新する方法を見つけることはできません。

JavaFxデスクトップアプリケーションは、プロジェクトの要件です。

これができない場合、またはこの問題のよく知られたプラットフォームを見落としている場合は、お詫び申し上げます。どんな助けでも大歓迎です。

答えて

1

あなたの結果を達成するためにポーリングする必要はありません。最初の質問に答えるために、まず最も柔軟で説得力のあるアプローチは、ミドルウェアを構築して変更を傍受することでした。

  1. データベースを変更するたびにイベントを発生させるスクリプトを作成します。時間間隔でウェザー。

第2作成サーバー、そのようなイベントを任意のクライアントに送信するリアルタイムサーバー。 第3に、java fxクライアントは、このようなタスクに対してネイティブのobservableを使用できます。しかし、私は、共通のリスナーと一緒に行くことを提案しました。完璧な選択肢はsocket.ioです。そこには、アンドロイドとバニラのJava用のWebソケット実装があります。アンドロイドクライアントの場合、データが挿入されたり、変換されたりすると、ブロードキャストレシーバー(ローカル)を使用してイベントを発生させ、サーバーに通知します。または、socket.io接続を使用してイベントを送信します。それはほとんどそれです。

+0

また、FireBase – Remario

0

ファイアベースのFirebase +クラウド機能は、ユースケースに最適です。この問題がAndroidではなくFirebaseの純粋なJavaのサポートである場合、この質問をチェックアウトすることができますGet Firebase to work with java, not Android

関連する問題