一个频道的多个推送注册

Multiple Push-Registrations for one Channel

谁能告诉我一个推送通知通道可以有多个 registraiontId 的原因吗?这样做的目的是什么?

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

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

await HubClient.GetRegistrationsByChannelAsync("<pnsHandle>", 100)

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

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

渠道与注册

"channel" 是设备和相应推送通知服务(例如 iOS 的 APNS)之间的句柄。将 "channel" 视为代表设备。

"registration",或者更准确地说,"Azure Notification Hub registration",包含到地址管理 可以通过频道接收推送通知的设备。

对于特定设备上的特定应用程序,您只能一个频道,但同一应用程序可以多个注册通过该频道在该设备上。

为什么要多次注册?

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

例如,一个用例是为一台设备注册多个模板,并为不同的通知设置特定模板。你可以通过标签来区分这些注册。

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

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

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

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