我有两个关于Android推送通知系统的问题:
发布于 2016-12-08 09:39:21
在回答关于GCM服务如何与客户机联系的问题时,GCM客户端与GCM联系以创建连接。当设备断开和重新连接时,设备地址更改是正确的,因此GCM无法从服务器端启动连接。
此连接将尽可能多地维护,而不是为特定消息创建的。
注册id标识设备和应用程序,并允许GCM路由消息到设备,如果它是连接的。如果没有连接,GCM需要等待设备重新连接。
发布于 2016-12-07 17:50:57
这个系统的工作原理是什么?客户端将自己的IP发送到Google消息传递服务(例如,当它切换自己的IP时)?所以这是一种汇集?
我在这里添加了一个图片,描述GCM的工作原理。

这是一步一步的演示。当应用程序启动时,您需要首先获得推送注册ID。因此,如果有后端服务器在应用程序中发送推送通知,则需要将注册ID传递给后端服务器。因此,当您需要发送推送通知时,后端服务器将使用目标注册ID将推送直接发送到GCM。当设备联机时,GCM设法将通知推送到设备中。
所以这不是任何形式的汇集。GCM唯一需要知道的是,当设备在线并试图与GCM通信时,它的注册ID。注册设备后,GCM将使用该注册ID发送推送通知。
您如何知道Google消息传递服务“查看”通知消息的内容(在服务器中创建并发送给客户端)?
这个问题我不太清楚。据我所知,您想知道GCM如何理解当通知来自后端服务器时,GCM需要向谁发送推送通知。如果这是你的问题,我想我在答覆的前一节已经回答了。
GCM不需要查看通知内容就可以知道推送通知的目的地。如前所述,当应用程序启动时,它从GCM请求推送注册ID,当它收到注册ID时,您可能必须通过调用后端服务器的服务来传递注册ID。然后,服务器知道它可能向谁发送通知。
因此,当向客户端应用程序发送通知时,后端服务器会将通知发送到GCM,其中包含前面发送给后端服务器的注册ID。然后,当应用程序联机时,GCM处理向客户端发送推送通知。
希望这能帮上忙!
https://stackoverflow.com/questions/41023743
复制相似问题