首页 > 解决方案 > 移动聊天应用程序中使用什么技术来接收消息?

问题描述

我是某种后端开发人员,不知道移动应用程序是如何工作的。但我需要为移动聊天应用服务器提供架构。

我知道android应用程序使用谷歌服务来接收来自firebase的推送通知,所以我们不需要在无限循环中运行自己的应用程序并在服务器上轮询新数据。

这对于推送通知来说是完美的,但 Firebase 通知正文受到 4KB 的限制,不适合大消息。

所以我只能看到一个实现:

  1. Google 服务轮询 FCM(前 GCM)通知
  2. 接收一些类似信号的通知
  3. 根据此通知,我的应用程序转到服务器并下载新消息
  4. 更新本地聊天数据
  5. 显示为新消息生成的本地通知

这种方式看起来很复杂,所以我不相信这是唯一可能(和正确)的方式。

另一种方法是保持每次打开 websocket 会话或手动轮询服务器。但是这两个操作应该会消耗很多电池。

那么现代聊天应用程序如何在关闭且设备屏幕关闭的情况下保持同步呢?

标签: androidioschatmessaging

解决方案


如果您真的想制作现代聊天应用程序,那么请对XMPP进行一些研究 这些可能是您可以遵循的一些最佳实践

  1. 在后端设置 XMPP 服务器并支持离线存储

  2. 应用程序使用客户端 XMPP SDKS 连接 XMPP 服务器。

  3. 在服务器连接丢失的情况下使用推送通知唤醒应用程序并重新连接到 XMPP

  4. 尝试将大文件保存在不同的服务器上并仅发送带有正文的 url,如果您想保持文件 url 的私密性,然后使用任何支持上传和下载私有文件(如 AWSS3)的客户端 SDK


推荐阅读