首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每台设备都是RegistrationId吗?

每台设备都是RegistrationId吗?
EN

Stack Overflow用户
提问于 2016-03-03 02:05:34
回答 1查看 941关注 0票数 1

我正在实现注册到从我的后端使用本教程作为指南。我的应用程序将需要身份验证,但用户可以注销并使用另一个帐户登录。RegistrationId应该是基于唯一的设备还是用户和设备的组合?换句话说,每次有注销时,我应该清除RegistrationId吗?那么当用户以另一个用户的身份登录,然后以原始用户的身份登录时,我们应该创建一个新的RegistrationId还是仍然使用原始的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-03 09:12:39

注册客户端应用程序的GCM文档声明如下:

开发人员不应将客户端应用程序作为注销或用户之间切换的机制注销,原因如下:

  • 注册令牌与特定的登录用户没有关联。如果客户端应用程序取消注册,然后重新注册,则应用程序可以接收相同的注册令牌或不同的注册令牌。
  • 取消注册和重新注册可能需要五分钟的时间来进行传播。在此期间,消息可能由于未注册状态而被拒绝,并且消息可能发送给错误的用户。

要确保消息发送到预期用户,请执行以下操作:

  • 应用服务器可以维护当前用户和注册令牌之间的映射。
  • 然后,客户端应用程序可以检查,以确保它收到的消息与登录用户匹配。

这也适用于其他推送通知服务,例如iOS。

推送通知服务注册标识单个设备上的特定应用程序。

使用Azure Notification,技术上可以在单个设备上对特定应用程序进行多个Azure通知Hub注册,甚至可以在登录和注销时注册和取消注册(仅在Azure Notification注册,而不是在平台特定的推送通知系统上注册),但这很容易出错,而且还有更好的方法:

  • 在Azure通知中心注册应用程序,只要您希望能够接收推送通知,并且只有当您想要停止接收它们时才取消注册。实际上,你可以在应用程序启动时注册,永远不要取消注册。
  • 如果用户登录,将带有用户ID (例如" user :123")的标记添加到注册中,如果他注销,则再次删除该标记。
  • 通过这种方式,您只需使用标记来寻址某个用户登录的设备,请参阅Azure通知集线器路由和标记表达式

修改标记也是在你所链接的教程中描述的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35761824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档