2017-11-27 27 views
0

私はタスクマネージャアプリケーションを構築しようとしています。 2つ以上のクライアントアプリケーションは、ウェブ上のデータベースに格納された特定のタスクを変更(例えば、タイトルを変更または変更するなど)できる必要があります。データベースの変更についてJavaアプリケーションに通知する

要件を作成しながら、次の質問を思い付いた:

どのようにそれは常にデータベースをチェックせずに、データベースの変更について(Mac上でAndroidアプリ、Javaベースのアプリケーション)のクライアントアプリケーションに通知することは可能でしょうか? Webサーバー上のSQLデータベースにデータオブジェクトを格納する予定でした。 別のデータベースを使用する必要がありますか? SEの世界で現在行われている標準的な方法は何ですか?私のためのキーワードや説明は助けになります!

答えて

0

まず、クライアントアプリケーションから直接データベースにアクセスしていないことを確認してください。これは非常に危険なルートです。

第2に、ご希望の場合、サーバー側のプッシュ通知が必要なようです。

私が知る限り、これを行うには3つの方法があります。サーバーから

  1. チェックごとに更新X秒(あなたがこの方法を通知する必要があまりにも多くのクライアントを持っていない場合は行くしても大丈夫です)
  2. 使用HTTPロングポーリング。
  3. WebSocketを使用すると、サーバー/クライアントアプリケーション間の持続性の高い接続を維持できます。

モバイルデバイスの場合、アプリが終了しても通知を受けたい場合は、利用可能なすべてのプッシュ通知フレームワーク(FCM/GCMなど)をご覧ください。

+0

ありがとうございます!私はFCM Framework Solutionを試してみたいと思います。私はWebsocketソリューションの使用について考えましたが、Webサーバー(HTTP/SQL)とアプリケーションサーバーはありません。 最後に、データベースに直接アクセスしないとどうしたらいいですか?私はSQLデータベースへの接続を確立し、データを取得しようとしていました。通信ルートに第三者がいるか、それとも正常に行われていますか? – TheBlackBird

+0

@ TheBlackBird WebSocketは実際には通常のHTTP Webサーバー内に存在できますが、多くのWebフレームワークでこれをサポートしています。データベースアクセスに関しては、この[post](https://stackoverflow.com/questions/16005831/connecting-to-sql-database-directly-or-through-a-client-server-service)をご覧ください。 。おそらくあなたはRESTfulなアーキテクチャーに行きたいと思うでしょう。 – toyknight

関連する問題