Server zu Phonegap-Push: SignalR vs Azure Notification Hub

Nun, ich befinde mich in einer Art Dilemma bei der Entwicklung meiner Phonegap-Anwendung: Soll ich mich für Echtzeit-Ereignisbenachrichtigungen für Azure Notification Hub oder SignalR entscheiden?

Für mein Verständnis ist SignalR durch die Verwendung von Web Sockets gut für Echtzeit-Webanwendungen geeignet. Während der Benachrichtigungs-Hub das Senden von Push-Benachrichtigungen über mehrere Plattformen hinweg vereinfacht. Lassen Sie mich die derzeitige Struktur und die Funktion meiner App erläutern, um die Beantwortung zu vereinfachen.

Die App: Es ist im Grunde eine App, in der Benutzer Gruppen erstellen und andere Benutzer einladen können. Der Benutzer kann auch eine Gruppe "online" machen, damit andere Benutzer die Gruppe "betreten" können. Während die Gruppe online ist und der Benutzer eingegeben hat, kann er Fragen senden, Nachrichten austauschen usw.

Notwendigkeit: Wenn ein Benutzer eine Frage in einer Gruppe stellt oder eine Gruppe betritt / verlässt, müssen die anderen Benutzer den neuen Benutzer auf dem App-Bildschirm sehen. Ich könnte eine Abfrage auf dem Server durchführen, um dies zu überprüfen und die Benutzeroberfläche entsprechend zu aktualisieren, aber dies ist etwas, was die modernen Tage nicht zulassen. Meine Recherchen zu diesem Thema haben mich zu zwei Dingen geführt: SignalR und NotificationHub.

Die aktuelle Architektur: Client -> PhoneGap-Anwendung mit backbone.js. Backend -> Asp.NET-Web-API mit Entity Framework und Azure SQL Server.

Ich habe mir bereits Gedanken über die Verwendung von Benachrichtigungs-Hubs und Tags gemacht. Wenn ein Benutzer beispielsweise eine Online-Gruppe betritt, sendet er eine Anforderung an den Server, ein Tag "grouplisten: {groupId}" zu registrieren. Der Server registriert dann das Tag beim Gerät des Benutzers und sendet auch eine Benachrichtigung an alle anderen Geräte mit dem Tag "grouplisten: {groupId}", sodass die anderen Benutzer die Benutzeroberfläche mit dem kürzlich beigetretenen Benutzer aktualisieren. Auch wenn der Benutzer die Gruppe verlässt, sendet er eine Aufforderung an den Server, das Tag "grouplisten: {groupId}" zu entfernen und die Geräte mit "grouplisten: {groupId}" zu benachrichtigen. Aber mit diesem einfachen Beispiel sieht es so aus, als ob es nicht mehr zu handhaben wäre.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage