将消息从服​​务器发送到 Android 应用程序

Posted

技术标签:

【中文标题】将消息从服​​务器发送到 Android 应用程序【英文标题】:Sending messages from Server to Android App 【发布时间】:2019-01-16 23:57:44 【问题描述】:

我有一个显示存储在 mysql 数据库中的消息的应用程序。现在,用户必须按下一个按钮来触发将消息下载到他或她的手机。我想实现一个功能,如果对消息进行更新,应用程序会自动检查数据库并下载新消息。如果数据库发生更新,我只需要一个触发器来执行代码。

我查看了 Firebase,但我必须创建一个新数据库来进行实时更改。我只需要从服务器发送一个触发器,以便应用程序可以执行代码。我尝试使用 AlarmManager 每隔一段时间检查一次更新,但它并没有真正起作用,因为当应用程序初始化警报时,警报只触发了一次。另外,我读到这不是正确的方法。

有没有办法在没有第三方程序的情况下做到这一点?我不能使用 php 向所有 android 应用发送消息吗?

谢谢,

曼努埃尔

【问题讨论】:

您可以使用 Firebase 云消息 (fcm) 与服务器到设备进行通信。但建议使用 Firebase 实时数据库。了解更多关于 fcm 的信息:firebase.google.com/docs/cloud-messaging 【参考方案1】:

您可以使用 FCM 或 GCM 使用推送通知并在消息到达时处理它们,或者您可以创建一个 websocket 并将您的应用程序连接到它。在我看来,推送是最适合您的方法。

【讨论】:

重申一下,他应该只使用推送通知来通知应用程序从服务器检索数据,为了能够对这些通知做出反应,他应该将消息和标题字段留空,但是添加元数据对象。除非绝对需要,否则请避免使用网络套接字。【参考方案2】:

您可以使用推送通知FCM 来做到这一点,该通知将由以下方式触发: - 将新消息保存到数据库时的 PHP 后端。 - 存储新元素时直接触发 mysql 存储过程。

【讨论】:

【参考方案3】:

MySQL 是一个基于服务器的数据库。它不会以任何方式“连接”到您的应用程序。为此,您需要使用定期为您检查消息并向设备发送通知的服务。谷歌云消息传递被广泛使用。我使用 FCM 及其高度可靠。您可以在不使用 Firebase 数据库的情况下进行设置。仅使用 Firebase 函数定期检查您的数据是否更新,然后向设备发送通知

【讨论】:

【参考方案4】:

您可以为您的应用程序使用 firebase 推送消息:https://firebase.google.com/docs/cloud-messaging/ 该文档是直截了当的并且有示例。如果您不想向自己发送服务器通知,则可以使用库(例如用于 java 的 pushraven)

【讨论】:

以上是关于将消息从服​​务器发送到 Android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring Websocket 上向特定用户发送消息

android c2dm中的推送通知

C 套接字:Echo 服务器错误回复

推送服务器实现技术?

如何使用 WIFI 将消息从 android 设备发送到 PC

Android 应用上游消息传递是不是可靠?