gpt4 book ai didi

android - 我应该使用 GCM 进行设备之间的实时通信吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:37:54 25 4
gpt4 key购买 nike

我正在为 android 制作聊天应用程序。为此,我决定使用 GCM(Google Cloud Messaging)。但是对它进行了一些研究后,我读到它不应该用于聊天之类的东西。

我将实现上游消息传递(将数据从设备直接发送到 GCM,无需发送到同步)。这是我的担忧:

  • 消息会立即传输吗? (将足够快,用户可以看到“打字”/看到)
  • 如果所有设备都在线,那么来自 GCM 的消息到达客户端的保证是什么?

我想使用GCM的主要原因是

  1. GCM 使用的电池生命周期最少
  2. 这是一款仅限 Android 的应用。

如果 GCM 不是我应该使用的,我应该使用什么?

最佳答案

我正在处理类似的要求,并正在研究能够显示反馈(例如打字/上次查看等)的要求,据我所知,基于 XMPP 的解决方案是合适的。

您可以尝试使用可用的 xmpp 服务器,如 ejabberd/mangooseim(开源),方法是将其安装在您的服务器上,并使用 asmack 或任何其他客户端 java 库与您的服务器进行通信。 (有很多可用的教程)。

有了这么多的设置,您将能够进入一个阶段,您可以在 whatsapp 和一些聊天客户端(如 gtalk/pidgin)中显示“正在输入”、“消失”等状态。

它可以大致了解现有聊天客户端的工作原理。

Ejabberd 完全用 erlang 编写,如果你想扩展任何功能,erlang 知识是必须的。 (它是专门为高并发容错和不停机系统而设计的,这在聊天应用中很有帮助。

GCM 肯定能够在 99.99% 的情况下在 Android 手机之间进行通信,并且不会有太多延迟,但是如果你想拥有像普通聊天应用程序一样的烘焙机状态,你将不得不彻底重新发明轮子。

更新:

这是注意事项。

从客户端 A 到客户端 B 我想发送与烘焙机的聊天消息,不需要将消息存储在任何中央服务器上,只需要存储在客户端上 - XMPP(如 whatsapp)

如果您需要将所有通信存储在服务器中 - XMPP 与 sql 驱动程序或 mongodb 驱动程序/gcm(取决于您的时间和资源)

如果您需要设备之间的通信而不是聊天,那么 gcm 就足够了。我目前在我的应用程序中使用这种方法,该应用程序在带有测试版的 Playstore 上运行,并且在大多数情况下它绝对可以正常工作。到目前为止,我还没有看到太多瓶颈。

关于android - 我应该使用 GCM 进行设备之间的实时通信吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com