In einer Node-Anwendung, die Websockets bedient, in denen Benutzer mehrere veröffentlichte Themen abonnieren und neue Updates zu den Themen in Echtzeit erhalten, ist die beste Möglichkeit, die Topic-Subscriber-Map zu speichern.Wie kann Node Websockets Topic-Subscriber Map am besten verwaltet werden?
Live-Themen: Thema1, Thema2, Topic3, Topic4
User1 abonniert Thema1, Thema2, Topic4. User2 abonniert Topic2, Topic4.
So soll es ein Kartenobjekt sein, wie
folgtTopic1=>[User1]
Topic2=>[User1,User2]
Topic4=>[User1,User2]
So dass, wenn es ein Update auf Thema1 ist, wird der Antrag das Update auf Benutzer1 websocket passieren.
Die Frage: Ist es gut genug, um die Thema-Abonnenten Karte als eine Anwendungsvariable (Javascript-Objekt) zu halten? Oder ist es besser, REDIS dafür einzusetzen?
Ich möchte auch die Informationen in dieser Karte speichern, um Trends wie Themen Interesse im Zeitverlauf nach Geographie zu analysieren. Daher sollten diese Daten im Hintergrund in die Original-DB kopiert werden.
Ich glaube, ich sollte nicht die Datenbank abfragen, um die aktuellen Abonnenten jedes Mal zu finden, wenn es ein Update zu einem Thema gibt.
Wie bei dem, was ich gefunden habe, ist REDIS ein In-Memory-Datenspeicher. Und die Javascript-Anwendungsvariable wird auch auf dem RAM leben.
Was ist der beste Weg, um darüber zu gehen?
Leistung wie in der schnellsten Aktualisierung an den Teilnehmer gewünscht wird.