Azure通知中心-安装是否防止重复通知?

Azure通知中心-安装是否防止重复通知?,azure,push-notification,azure-notificationhub,Azure,Push Notification,Azure Notificationhub,在描述注册管理的文件中,声明: 以下是使用安装的一些关键优势: 创建或更新安装是完全幂等的。所以你可以 重试,不必担心重复注册 这到底是什么意思?我假设这并不意味着安装有一个与注册不同的“CreateOrUpdate”,因为那里也存在一个类似的方法——“CreateOrUpdateRegistrationAsync” 假设我创建了两个具有不同安装ID但具有相同PNS句柄(pushChannelproperty)的安装,并且两个安装中都存在相同的标记“foo”。我将使用SendTemplateNo

在描述注册管理的文件中,声明:

以下是使用安装的一些关键优势:

创建或更新安装是完全幂等的。所以你可以 重试,不必担心重复注册

这到底是什么意思?我假设这并不意味着安装有一个与注册不同的“CreateOrUpdate”,因为那里也存在一个类似的方法——“CreateOrUpdateRegistrationAsync”

假设我创建了两个具有不同安装ID但具有相同PNS句柄(
pushChannel
property)的安装,并且两个安装中都存在相同的标记“foo”。我将使用
SendTemplateNotificationAsync
方法发送通知,使用'foo'标记选择通知的目标

它将匹配我的两个安装,因为它们都包含标记“foo”,并且都具有相同的PNS句柄。在这种情况下,设备将接收两个通知,还是Azure将阻止重复的发送

在同一篇文章中,我链接了代码示例do check for existing Registration与即将注册的PNS句柄:

// make sure there are no existing registrations for this push handle (used for iOS and Android)    
    string newRegistrationId = null;
    var registrations = await hub.GetRegistrationsByChannelAsync(pushChannel.Uri, 100);
但他们没有在安装示例中检查这一点,这再次表明Azure阻止了重复通知的传递

创建或更新安装是完全幂等的。所以你可以 重试,不必担心重复注册

这里,
安装
是一个术语,用于描述增强注册(使用Azure的通知中心)以将设备的PN与标签和/或模板关联。此处的“幂等性”用于描述此类
安装的行为
这意味着,每次应用程序启动或被带到前台时,您都可以简单地为此类注册调用相同的代码,而无需担心如何处理PNS中的更改或以前在通知中心的注册状态
这是很好的,因为经典的
注册
模式会导致在通知中心为同一设备和用户进行重复注册<代码>安装
型号不能这样做

Q.当您将一个PNS分配给通知中心中具有相同标签的多个注册,并尝试通过定位标签来推送通知时,会发生什么情况
A.Azure通知中心具有重复数据消除逻辑,可防止重复通知发出

Q.如果您有多个应用程序,但只有一个通知中心,您是否可以以任何方式强制多个通知(针对同一标记)
A.如果您可以获得多个设备令牌,您可以。但是,在iOS的情况下,由于APN一次只发布一个有效的设备令牌,因此不可能。此外,iOS应用程序有自己的捆绑标识,因此有自己的特定推送证书。而且,通知中心不支持多个证书。但在Android的情况下,如果您使用
注册
模式并使用较旧的GCM注册ID,您可以强制使用,因为它们会频繁更新,不会轻易过期

希望有帮助!干杯