使用 GCM 的 Android 聊天应用

Posted

技术标签:

【中文标题】使用 GCM 的 Android 聊天应用【英文标题】:Android chat app using GCM 【发布时间】:2015-11-22 18:07:02 【问题描述】:

好的,我们都知道 GCM 的能力,但我的问题是:GCM 是否可靠地处理聊天应用程序?我的意思是它可以处理(快速)向数百人发送消息吗?如果没有,那么最好的方法是什么?

我已经阅读了很多关于聊天应用程序的内容,我发现我们必须使用 XMPP,但我只能找到不与我的服务器集成的 API,例如 Parse(我们必须注册和登录他们的后端不是很方便)

谢谢大家

编辑: Google Cloud Messaging GCM CCS 与 XMPP 怎么样

【问题讨论】:

我会使用Firebase. 【参考方案1】:

对于聊天应用程序,仅 GCM 是不够的,因为它可能会延迟或错过某个时间。您可以使用 MQTT(在移动平台上比 XMPP 具有多种优势)和 GCM。方法应该是:

1) 如果用户在前台,则使用 MQTT 持久连接。这会更快,并且将是实时的交付报告和聊天的阅读回执。您可以在未连接时使用 GCM 唤醒 MQTT 连接。

2) 当用户在后台不主动使用聊天时(关闭 MQTT 连接)在 GCM 上中继。这将节省您的电池寿命以及网络使用量。

对于示例代码,您可以通过我们的Applozic 开源聊天 sdk。

【讨论】:

【参考方案2】:

根据我的看法和经验,GCM 不够快。谷歌从未声称会如此。聊天服务器/服务需要保证在一定时间内传递消息,至少 99.9% 的时间。即使您不想要聊天的交付报告(许多聊天应用程序仍然不提供),GCM 本身对于聊天应用程序来说也会很慢。最好只使用 XMPP 服务器

【讨论】:

谢谢!!使用 XMPP 的 GCM CCS 怎么样 我自己从未使用过它,但阅读 API 文档,我相信它应该可以工作!没有理由不这样做

以上是关于使用 GCM 的 Android 聊天应用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XMPP 和 GCM 在 Android 中制作聊天应用程序

GCM 响应是无效的 Android 应用注册 ID

android中两个应用程序的相同GCM注册ID?

Android- Open Fire、云连接服务器和 GCM 之间的区别

Android:开发聊天应用程序

如何在 Android + GCM 中获得带有声音 + 自定义应用程序图标的推送通知