如果客户端发送新注册令牌时应用服务器处于脱机状态怎么办?

时间:2016-11-27 19:57:35

标签: android firebase firebase-cloud-messaging

如果我的Android客户端应用收到新的注册令牌,它会通过FCM将此新令牌发送到应用服务器。如果应用服务器具有新令牌,则他可以向客户端应用发送消息。

如果客户端处于脱机状态,FCM将存储该消息,直到客户端上线,然后将消息发送到客户端。到目前为止,非常好。

但是,如果客户端想要发送新的注册令牌,但应用服务器处于脱机状态,则FCM不会存储令牌,以便他们尽快将其发送到应用服务器上线了。

是否存在现有机制(除定时器机制,定期轮询reg令牌),app服务器获取注册令牌,直到它将其状态从无法访问变为可达?

1 个答案:

答案 0 :(得分:1)

正如评论部分中@ Manny264已经提到的,目前没有针对此方案的机制或API。而且由于这里的问题是因为预计会在你的终端上处理一个App Server,我认为你也可以自己处理这个场景。

我建议您在尝试将注册令牌发送到App Server时检查您收到的响应,如果失败,请稍后再次尝试重新请求,但您已经提到过您不想要的任何内容计时器机制等。

您可以做的是使用Topics Messaging,拥有一个所有用户自动订阅的通用主题(在这种情况下,客户端应用程序能够成功订阅) ,如果您的App Server停机一段时间,再次上线后,请使用InstanceID API检索订阅的令牌列表,然后检查并比较是否有任何新令牌已保存在您的App Server中。

选择取决于你。我认为如果你只是在客户端应用程序端实现重试机制会更容易。