许多应用程序(如WhatsApp
)依赖GCM
在设备空闲或应用程序在后台运行时向设备发送通知。 GCM
消息只是告诉应用程序从服务器同步,然后使用XMPP
进行实际聊天(传递有效负载)。但依靠GCM
发送消息是一个很好的决定。因此,在我的情况下,当一个用户想要与另一个用户交谈时,他向我的服务器发送消息,然后我通过GCM
将消息传递给其他用户。我理解GCM
不是100%可靠,但我可以通过超时和确认消息确保可靠性。如果我完全使用GCM
,还有什么可能会伤害我的。
不与XMPP
一起使用的原因是需要花费很多精力来扩展XMPP
服务器(我不太熟悉),但在GCM
的情况下需要很多我的扩展问题由Google负责。
答案 0 :(得分:2)
我使用GCM提醒客户端连接。如果您只是依靠GCM来提供有效负载,则无法轻松跟踪消息的传递。
例如,我在我的应用程序中使用了一种非常基本的流管理形式,因此我更喜欢将其保留为同步实用程序,并让我的客户端/服务器直接进行通信。
它也是不可扩展的,尽管你可以将xml放在消息体中并解析它。
我不确定交付的保证是什么,但我也会在谷歌方面检查出来,如果你用它来发送多条消息,你需要确保加入collapse_key
如果您使用高音量,如果发送延迟,GCM会将您的消息合并到一个客户端。
另一件事我不确定GCM的实时性,所以我不确定真正的聊天应用程序有多棒。
在使用GCM进行有效负载传输之前,我会考虑这些事情。