朋友,我正在使用聊天应用程序。在我的聊天应用程序中,我使用GCM进行推送通知。 GCM在我的应用程序中运行良好。但并非所有时间我都无法获得GCM消息。有时我会收到GCM消息,有时却没有。为什么这样?我搜索了GCM消息失败但找不到合适的消息。
任何人都可以帮助我吗?
答案 0 :(得分:7)
当您向Google GCM服务器发送消息时(https://android.googleapis.com/gcm/send),您需要传递三个值:registration_id,collapse_key和data.message。 collapse_key可能是你的问题。
确保为每个需要可靠传递的邮件传递唯一的collapse_key。如果对每条消息使用相同的collapse_key,则GCM可能会丢弃大约在同一时间发送的多条消息。
您可以在此处找到更多信息:http://developer.android.com/google/gcm/adv.html。
答案 1 :(得分:1)
由于您没有提供有关您的情况的大量信息并且不共享代码段,因此很难分析问题。但是,正如documentation中所述,GCM不保证交付或消息的顺序。
答案 2 :(得分:1)
如果您通过任何防火墙(如“Cyberoam”等)使用移动互联网,那么它会限制GCM推送通知的端口。尝试使用直接互联网连接实现它而不使用任何防火墙。这个Solved Probelem对我来说。我希望它也能帮到你。
GCM要求打开端口号5228,5229和5230。 GCM通常使用5228,但它有时使用可能受防火墙限制的5229和5230。