仅使用GCM开发Android ditching XMPP的聊天应用程序是否好?

lov*_*esh 8 android xmpp google-cloud-messaging

很多应用程序WhatsApp都依赖于GCM在设备空闲或应用程序在后台运行时向设备发送通知.该GCM消息只是告诉应用程序从服务器同步,然后XMPP用于进行实际聊天(传递有效负载).但依靠GCM发送消息是一个很好的决定.因此,在我的情况下,当一个用户想要与另一个用户交谈时,他向我的服务器发送消息,然后我将消息传递给其他用户GCM.我理解GCM不是100%可靠,但我可以通过超时和确认消息确保可靠性.如果我完全与之相处,还有什么可能会伤害到我GCM.不参与的原因XMPP是需要花费很多精力来扩展XMPP服务器(我不太熟悉),但是如果GCM我的大量扩展问题由Google负责.

小智 2

我使用 GCM 来提醒客户端进行连接。如果您仅依靠 GCM 来传递有效负载,则无法轻松跟踪消息的传递。

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

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

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

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

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