2017-06-08 4 views
0

Ich frage mich, welche ist die beste Praxis in Azure Notification Hub Push-Benachrichtigungen an ein paar bestimmte Benutzer (z. B. über verfolgte Aktivitäten) senden.Azure Notification Hub Best Practice im sozialen Netzwerk Szenario

Stellen Sie sich vor, Benutzer können anderen Benutzern folgen und diese Follower sollten über neue Aktivitäten benachrichtigt werden (Facebook, Twitter-Prinzip).

Wie diese Benachrichtigungen im Detail gesendet werden, gibt es zwei Möglichkeiten, über die ich nachdenke, aber welche ist die beste?

1) durch alle gewünschten Benutzer durch Code durchlaufen und SendTemplateNotificationAsync für jeden einzelnen Benutzer aufrufen?

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

2) Mit speziellen Tags kann ein Benutzer Es ist möglich,

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); 

registrieren, dass ein Benutzer bis zu 1.000 anderen Benutzern folgt, so muss er 1.000 der followerUserId-Tag registrieren.

Ist der zweite Ansatz eine zuverlässige Lösung?

Gibt es Einschränkungen für Tags, zu denen sich ein Benutzer anmelden kann?

Antwort

0

This answer beschreibt Tag-Grenzen für NH. Es gibt ein Limit von 60 Tags pro Registrierung, so dass Sie Ihren zweiten Ansatz nicht verwenden können, wenn Sie 1k Follower zulassen möchten.

Sie können die SendNotificationAsync(Notification, IEnumerable<String>)overload of the method verwenden, um Anrufe in Ihrem ersten Szenario in Gruppen von maximal 20 "zu Batch", um die Anzahl der Anrufe, die Sie an den Dienst zu speichern.

+0

Danke für Ihre Antwort! Aber der nächste folgende Beitrag im verknüpften Thread sagt, dass MS das Tag-Limit beseitigt hat? – Mica

+1

Das ist ein wenig verwirrend, aber es gibt viele Aspekte, um Grenzen zu begrenzen. Die Anzahl der _Tags pro Gerät_ beträgt 60. Die Anzahl der _Tags insgesamt_ ist jedoch auf 3000 begrenzt. Geräte mit <5 Tags sind jedoch von der Begrenzung ausgeschlossen. In Ihrem Fall würde das bedeuten, dass Sie, wenn jedem Benutzer 5 oder weniger Tags zugeordnet sind, die 3k-Obergrenze nicht erreichen, egal wie viele Benutzer Sie haben. –

Verwandte Themen