Android推送通知系统的工作原理(推送通知在Android中是如何工作的?)
Working principles of Android Push Notification System (how does push notification works in Android?)
我有两个与 Android 推送通知系统相关的问题:
- 这个系统的工作原理是什么?客户端将自己的 IP 发送到 Google 云消息服务(例如,当它切换自己的 IP 时)?所以这是一种池化?
- 您怎么知道 Google 云消息服务 "looks into" 通知消息的内容(在服务器中创建并发送到客户端)?
What is the working principle of this system? The client sends its own
IP to the Google Cloud Messaging Service (for example when it switches
its own IP)? So it a sort of pooling?
我在这里添加了一张描述 GCM 工作原理的图片。
这是一个循序渐进的介绍。当您的应用程序启动时,您需要先获取推送注册 ID。因此,如果您有一个后端服务器在您的应用程序中发送一些推送通知,您需要将注册 ID 传递给您的后端服务器。因此,当您需要发送推送通知时,您的后端服务器会使用目标注册 ID 将推送直接发送到 GCM。当您的设备上线时,GCM 设法在您的设备中推送通知。
所以这不是任何一种池化。 GCM 唯一需要知道的是您的设备联机并尝试与 GCM 通信时的注册 ID。注册您的设备后,GCM 会使用该注册 ID 发送推送通知。
How do you know that Google Cloud Messaging Service "looks into" the
content of the notification message (created in the server and
dispatched to the client)?
这个问题我不是很清楚。据我所知,您想知道当通知来自您的后端服务器时,GCM 如何理解它需要向谁发送推送通知。如果这是你的问题,那么我想我已经在我的回答的前一部分中回答了。
GCM 无需查看您的通知内容即可了解推送通知的目的地。正如我之前所说,当您的应用程序启动时,它会从 GCM 请求推送注册 ID,当它收到注册 ID 时,您可能必须通过调用后端服务器的服务来传递注册 ID。服务器然后知道它可能向谁发送一些通知。
因此,当需要向您的客户端应用程序发送通知时,后端服务器会使用您之前发送给后端服务器的注册 ID 向 GCM 发送通知。然后,当应用程序上线时,GCM 会处理向客户端发送推送通知。
希望对您有所帮助!
回答有关 GCM 服务如何联系客户端的问题,GCM 客户端联系 GCM 以创建连接。您是正确的,设备地址会随着设备断开连接和重新连接而发生变化,因此 GCM 无法从服务器端启动连接。
尽可能保持此连接,而不是为特定消息创建连接。
注册 ID 标识设备和应用程序,并允许 GCM 将消息路由到设备(如果已连接)。如果未连接,GCM需要等到设备重新连接。
我有两个与 Android 推送通知系统相关的问题:
- 这个系统的工作原理是什么?客户端将自己的 IP 发送到 Google 云消息服务(例如,当它切换自己的 IP 时)?所以这是一种池化?
- 您怎么知道 Google 云消息服务 "looks into" 通知消息的内容(在服务器中创建并发送到客户端)?
What is the working principle of this system? The client sends its own IP to the Google Cloud Messaging Service (for example when it switches its own IP)? So it a sort of pooling?
我在这里添加了一张描述 GCM 工作原理的图片。
这是一个循序渐进的介绍。当您的应用程序启动时,您需要先获取推送注册 ID。因此,如果您有一个后端服务器在您的应用程序中发送一些推送通知,您需要将注册 ID 传递给您的后端服务器。因此,当您需要发送推送通知时,您的后端服务器会使用目标注册 ID 将推送直接发送到 GCM。当您的设备上线时,GCM 设法在您的设备中推送通知。
所以这不是任何一种池化。 GCM 唯一需要知道的是您的设备联机并尝试与 GCM 通信时的注册 ID。注册您的设备后,GCM 会使用该注册 ID 发送推送通知。
How do you know that Google Cloud Messaging Service "looks into" the content of the notification message (created in the server and dispatched to the client)?
这个问题我不是很清楚。据我所知,您想知道当通知来自您的后端服务器时,GCM 如何理解它需要向谁发送推送通知。如果这是你的问题,那么我想我已经在我的回答的前一部分中回答了。
GCM 无需查看您的通知内容即可了解推送通知的目的地。正如我之前所说,当您的应用程序启动时,它会从 GCM 请求推送注册 ID,当它收到注册 ID 时,您可能必须通过调用后端服务器的服务来传递注册 ID。服务器然后知道它可能向谁发送一些通知。
因此,当需要向您的客户端应用程序发送通知时,后端服务器会使用您之前发送给后端服务器的注册 ID 向 GCM 发送通知。然后,当应用程序上线时,GCM 会处理向客户端发送推送通知。
希望对您有所帮助!
回答有关 GCM 服务如何联系客户端的问题,GCM 客户端联系 GCM 以创建连接。您是正确的,设备地址会随着设备断开连接和重新连接而发生变化,因此 GCM 无法从服务器端启动连接。
尽可能保持此连接,而不是为特定消息创建连接。
注册 ID 标识设备和应用程序,并允许 GCM 将消息路由到设备(如果已连接)。如果未连接,GCM需要等到设备重新连接。