GCM连接服务器如何向Android设备发送消息?

7
我正在阅读有关Google Cloud Messaging(GCM)的内容。由GCM连接服务器接收到的推送通知将被发送到启用了GCM的Android设备。我认为在内部,它使用设备ID(然后使用ARP协议从MAC解析IP)来发送推送通知。 GCM在内部使用哪个协议来传递通知?如果是TCP / IP,则如何解析设备的IP地址(考虑到用户切换WiFi网络和移动数据,该地址并不唯一)。
有人可以帮助我理解GCM与客户端之间的通信吗?

您的设备通过Google Play服务连接到了Google。简而言之。 - Bojan Kseneman
1个回答

18
  • GCM 通过 Google Play 服务工作(没有 Google Play 服务就没有 GCM)
  • 设备通过TCP 端口 5228(备用端口为 443)连接到 Google Play 服务
  • 设备每 28 分钟(移动网络)或 15 分钟(Wi-Fi)向 Google Play 服务发送一次心跳包
  • 如果设备的网络状态发生变化,则必须重新建立与 Google Play 服务的 TCP 连接,这可能会导致问题
  • 您可以拨打*#*#426#*#*检查设备的连接状态、心跳间隔、连接地址和端口等信息

您可以在Google Product 论坛上的此帖子中找到更多信息。


https://firebase.google.com/docs/cloud-messaging/concept-options#ports_and_your_firewall 表示现在使用5228-5230端口。 - James Wald

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接