社交网络场景中的 Azure 通知中心最佳实践

Posted

技术标签:

【中文标题】社交网络场景中的 Azure 通知中心最佳实践【英文标题】:Azure notification hub best practice in social network scenario 【发布时间】:2017-06-08 08:55:18 【问题描述】:

我想知道在 Azure 通知中心向几个特定用户发送推送通知(例如关于关注的活动)的最佳做法是什么。

想象一下,用户可以关注其他用户,并且应该通知这些关注者有新的活动(facebook、twitter 原则)。

如何详细发送这些通知,我正在考虑两种选择,但哪一种最好?

1) 通过代码循环遍历所有需要的用户并为每个单独的用户调用SendTemplateNotificationAsync

foreach(user in allSubscribedUsers) 
    tags.Add("userid:" + userId);
    await hub.SendTemplateNotificationAsync(notification, tags);

2) 具有用户可以注册的特殊标签

registration.Tags = new HashSet<string>(deviceUpdate.Tags);

// the current user follows other users with the ids 1,2 and 3
registration.Tags.Add("followerUserid:1");
registration.Tags.Add("followerUserid:2");
registration.Tags.Add("followerUserid:3");
...
// an acivity by user with id 2 is happen
// send a push notification to all users who follow the user with id 2
tags.Add("followerUserid:2");
await hub.SendTemplateNotificationAsync(notification, tags);

一个用户可能最多关注 1.000 个其他用户,因此他需要注册 1.000 个 followerUserId-Tag

第二种方法是否可靠?

用户可以注册是否有任何标签限制?

【问题讨论】:

【参考方案1】:

This answer 描述了 NH 的标签限制。每次注册有 60 个标签的限制,因此如果您想允许 1k 关注者,您将无法使用第二种方法。

您可以使用 SendNotificationAsync(Notification, IEnumerable&lt;String&gt;) overload of the method 在您的第一个场景中以最多 20 个为一组“批量”调用,以节省您对服务的调用次数。

【讨论】:

感谢您的回答!但是链接线程中的下一篇文章说,MS 已经消除了标签限制? 这有点令人困惑,但标签限制有很多方面。 每台设备的标签数为 60。但标签总数的上限为 3000。不过,带有

以上是关于社交网络场景中的 Azure 通知中心最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

Azure Functions 中的 HttpClient 最佳实践

阿里巴巴:云上应用自动化运维管理的最佳实践 | 活动通知

分布式架构在云计算平台中的四种主要应用及优缺点分析 | 最佳实践

Azure 集成 CICD 的最佳实践 [关闭]

Azure 表:选择分区/行键的最佳实践

声网管浩森:元宇宙派对场景的最佳实践