一个通道的多个推送注册

Joe*_*ehl 1 c# push-notification azure-notificationhub

有人可以给我一个理由,让我在一个推送通知通道上拥有一个registraiontId吗?目的是什么?

我已经阅读了很多有关处理推送通知的文章(我使用过Azure服务),但是我没有找到原因。我知道,频道会随着时间变化,然后我需要在后端的每个设备上更改我的注册ID上的频道。

以下方法似乎正在加载多个注册。为什么?

await HubClient.GetRegistrationsByChannelAsync("<pnsHandle>", 100)
Run Code Online (Sandbox Code Playgroud)

换句话说:渠道和注册之间的主要区别是什么?

我对此有些困惑...谢谢

Bar*_*kar 5

渠道与注册

“通道”是一种装置和相应的推送通知服务(例如APNS iOS设备)之间的手柄。将“通道”视为代表设备。

“登记”,或更精确的“天青通知集线器登记”,包含数据地址管理可经由信道接收的推送通知的装置。

您只能在一个设备上为一个特定应用程序拥有一个频道,但是可以通过该频道在该设备上为该应用程序拥有多个注册

为什么要进行多次注册?

您不必每个频道有多个注册。但是,以下是您可能会决定这样做的一些原因。

一种用例是,例如,为一台设备进行多个模板注册,并为不同的通知使用特定的模板。然后可以通过标签区分这些注册。

例如,一个设备/频道可能针对社交网络应用的以下通知具有特定的模板注册:

  • 好友请求(模板参数:好友名称)
  • 聊天消息(模板参数:发件人姓名,聊天消息)
  • 状态更新(模板参数:朋友姓名,状态更新)

另一个用例是为每个要向您的应用发送推送通知的服务进行一次注册。

对于特定设备上的特定应用程序,您只能有一个频道,但是对于该设备上的同一应用程序,您可以具有多个注册,其中每个注册都由另一服务管理和使用。