8

许多应用程序WhatsApp都依赖于GCM在设备空闲或应用程序在后台运行时向设备发送通知。该GCM消息只是告诉应用程序从服务器同步,然后XMPP用于进行实际聊天(传递有效负载)。但是,依靠GCM发送消息是一个好的决定吗?因此,在我的情况下,当一个用户想与另一个用户交谈时,他向我的服务器发送一条消息,然后我通过GCM. 我知道GCM不是 100% 可靠,但我可以通过超时和确认消息来确保可靠性。如果我完全同意,还有什么会伤害我的吗GCM?不去的原因XMPP是规模化需要付出很大的努力XMPP服务器(我不太熟悉),但如果GCM我的很多扩展问题都由谷歌处理。

4

1 回答 1

2

我使用 GCM 来提醒客户端连接。如果您只是依靠 GCM 来传递有效负载,那么您将无法轻松跟踪消息的传递。

例如,我在我的应用程序中使用了一种非常基本的流管理形式,因此我更喜欢将其保留在同步实用程序中,并让我的客户端/服务器直接通信。

它也是不可扩展的,尽管您可以将 xml 放在消息正文中并对其进行解析。

我不确定交付保证是什么,但我也会在谷歌方面检查一下,如果您使用它来交付多条消息,您需要确保将该collapse_key功能合并到您的客户端中,因为 GCM 将整合如果您使用高容量时发送延迟,则您的消息会合二为一。

另一件事我不确定 GCM 的实时性,所以我不确定它对于真正的类似聊天的应用程序会有多好。

在使用 GCM 进行有效负载交付之前,我会考虑这些事情。

于 2013-08-06T06:58:33.580 回答