【发布时间】:2019-06-17 20:37:58
【问题描述】:
我对 MySQL 中的实时通知有疑问。 我希望当 MySQL db 的特定表发生变化时,db 通知我的 android 应用程序做某事。
可以吗?我听说触发器可以提供帮助,但我在网络上没有找到任何相关信息,尤其是对于 android。
我正在为大学的一个 android 项目创建一个实时聊天应用程序。在项目中需要使用servlet,所以我的servlet向数据库发出请求并将数据发送到应用程序。为此,应用程序每秒向 servlet 发出 GET 请求以获取新消息。我想避免发出这些请求并仅在数据库发生更改时才更新消息列表。我知道它可以通过例如 firebase 来完成,但是必须使用 servlet 我想知道是否有办法在发生这种变化时通知应用程序。
消息被插入到数据库中,并带有对更新数据库的 servlet 的 POST 请求;有关消息的信息取自应用程序中的编辑文本,并使用发送按钮发出请求,因此我要做的就是在数据库中检测到新消息时推送 android 应用程序。
【问题讨论】:
-
1.在 servlet 的 init 方法启动时将所有消息加载到缓存(HashMap 等)中,并使您的 android 应用程序访问该缓存。 2. 每当 mysql 的状态发生变化时,即有人添加新消息,首先更新缓存中的消息,以便您的 android 应用程序始终使用最新的消息数据。 3.稍后更新数据库中的缓存更改。最后你问你要通知应用程序,以便你可以随时使用 FCM 通知。
-
好的,我已经在 init 方法中将 db 数据保存在缓存中,但是如何在我的 SQL db 中使用 FCM 通知? @OnkarMusale
-
当数据库状态发生变化,即有人添加新消息时,您可以向安卓应用发送 FCM 通知。
-
好吧,我明白我必须做什么,但我怎么做是个问题。我认为要发送此通知,我可以在数据库中使用触发器,但我不知道,我在 @OnkarMusale 之前从未使用过 FCM 通知
-
好的,时间太长了。告诉我你的数据库结构是如何变化的。如何插入新消息。 ?如果是这样,正在使用 api 添加或更改数据库结构。只需在执行插入消息查询后添加 Java FCM 代码。通过编辑在您的问题中简要解释它。
标签: android mysql database servlets triggers