【问题标题】:Informing Java Application about changes in database通知 Java 应用程序有关数据库的更改
【发布时间】:2017-11-27 19:58:35
【问题描述】:

我正在尝试构建一个任务管理器应用程序。两个或多个客户端应用程序应该能够通过 Web 更改(例如标记或更改标题等)存储在数据库中的某些任务。

在创建需求时,出现了以下问题:

如何在不经常检查数据库的情况下通知客户端应用程序(Android 应用程序、Mac 上的 Java 应用程序)有关数据库的更改?我计划将数据对象存储在 Web 服务器上的 SQL 数据库中。 我应该使用另一个数据库吗?现在在 SE 世界中的标准方式是什么?对我来说任何关键字或解释都会有所帮助!

【问题讨论】:

    标签: java android database networking client-server


    【解决方案1】:

    首先,确保您不是直接从客户端应用程序访问数据库,这是一条非常危险的路线。

    其次,就您的要求而言,您似乎想要一个服务器端推送通知。

    据我所知,有 3 种方法可以做到这一点。

    1. 每隔 X 秒检查一次来自服务器的更新(如果您没有太多需要通知的客户端,可以采用这种方式)
    2. 使用 HTTP 长轮询。
    3. 使用WebSocket 保持服务器/客户端应用程序之间的长期连接。

    但对于移动设备,如果您想在应用关闭时也能收到通知,请查看所有可用的推送通知框架(例如 FCM/GCM)。

    【讨论】:

    • 谢谢!我想我会尝试 FCM 框架解决方案。我曾考虑过使用 Websocket 解决方案,但我只有一个网络服务器(HTTP/SQL),没有应用程序服务器。最后一个问题,如果不是直接访问数据库,我应该如何访问?我打算建立到 SQL 数据库的连接并检索数据。通信路径中应该有第三方还是如何正常进行?
    • @TheBlackBird WebSocket 实际上可以存在于普通的 HTTP Web 服务器中,许多 Web 框架都支持这一点。至于数据库访问,可以看看这个post。我想你可能会想要一个 RESTful 架构。
    猜你喜欢
    • 2013-03-28
    • 2021-01-18
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 2013-08-10
    相关资源
    最近更新 更多