Azure 推送通知是不是支持用户 ID 或别名?

Posted

技术标签:

【中文标题】Azure 推送通知是不是支持用户 ID 或别名?【英文标题】:Does Azure Push Notification support a user Id or alias?Azure 推送通知是否支持用户 ID 或别名? 【发布时间】:2014-02-05 15:40:09 【问题描述】:

我正在评估要使用 Azure 移动服务、Parse 和 Urban Airship 中的哪个推送通知服务。

其中一个标准是该服务是否为应用程序提供了一种注册定制用户 ID 或别名的方法,然后在调用该服务向个人发送推送通知时可以轻松使用该方法。这样就不需要我们的后端服务有一个查找表,为我们提供给定用户的服务注册 ID。

Urban Airship 有别名功能:http://docs.urbanairship.com/connect/connect_audience.html#aliases

Parse 有一个复杂的 Installation 对象,其行为类似于字典,因此可以向其中添加其他值(如 UserId)。当调用 Parse 服务发送推送通知时,可以使用查询来指定将接收消息的用户: https://www.parse.com/docs/push_guide#sending-queries/REST

Azure 移动服务中是否有等效功能?

【问题讨论】:

【参考方案1】:

使用移动服务,您需要在表格中跟踪用户与令牌/通道 URI/注册 ID 的关联,这比您需要做的工作更多。但是,Windows Azure 的另一个功能是通知中心,它可以满足您的需求(以及更多功能)。使用通知中心,您可以从客户端说“我想注册通知中心,这里有一些标签可以用来向我推送信息”。这些标签可以是您想要的任何东西,包括用户 ID。稍后您可以告诉您的通知中心推送给使用特定标签注册的任何人。这将允许您将通知推送到特定用户已注册的任何设备。

流程看起来像这样:

    向推送提供商(APNS、GCM、MPNS、WNS)注册 将令牌连同标签(例如用户 ID)一起发送到通知中心 触发推送到特定标签(即用户 ID) 通知中心将处理向所有带有标签(同样是其用户 ID)的设备发送推送

Notification Hubs 拥有适用于 WinPhone、WinStore、iosandroid 的客户端 SDK,因此它非常易于从客户端使用。就触发推送而言,Notification Hubs 公开了一个您可以与之通信的 REST API,有一个 .NET SDK、一个 Node SDK 以及一个非官方的 Java SDK。您甚至可以使用来自 Mobile Services 的 Node SDK,这使得将身份验证(即获取用户 ID)与数据存储和推送通知结合起来非常容易。它还具有许多其他功能,例如模板化推送通知,因此您可以让客户端应用程序指示它应该如何接收某种类型的推送,而不是根据您推送的设备操作系统指定不同的有效负载。

【讨论】:

很好的答案,我没有考虑为每个用户使用标签,因为标签的大多数示例都是用于订阅主题。非常感谢。 如果我们用它来管理100万用户,可以用azure hub基本方案使用100万标签吗? 是的,如果您查看定价页面 (azure.microsoft.com/en-us/pricing/details/notification-hubs),它会显示“# of tags (broadcast groups)”限制为 3k。但是,带有 5 个或更少设备的标签不会超出该限制。因此,您可以为每个用户拥有单独的标签,而不会触及广播标签的限制。

以上是关于Azure 推送通知是不是支持用户 ID 或别名?的主要内容,如果未能解决你的问题,请参考以下文章

通过新门户中的 Azure 通知中心发送通知

带有 Azure 推送通知的推送通知的多用户应用程序

Azure 通知中心推送通知失败或传递无效或不完整的数据

iOS极光推送设置别名

定期发送 Azure 推送通知

如何使用 azure hub 向某些用户发送批量推送通知