DEV Community

Cover image for Verwalten von Benutzern und Kanälen mit BizOps Workspace

Verwalten von Benutzern und Kanälen mit BizOps Workspace

Dieser How-to-Artikel ist Teil einer Reihe von Artikeln, die sich mit den Datenverwaltungsfunktionen von PubNub befassen, die unter dem Namen BizOps Workspace bekannt sind:

BizOps Workspace ist eine Reihe von Tools, die Ihnen bei der Verwaltung Ihrer Anwendung helfen. Dieser Artikel befasst sich mit den Funktionen*"User Management" und"Channel Management*", die es Ihnen ermöglichen, die App Context-Metadaten über Ihre Benutzer und Channels sowie die "Mitgliedschafts"-Beziehung zwischen ihnen zu verwalten, ohne dass Sie irgendeinen Code ändern müssen. In diesem Artikel wird erklärt, was App Context ist und wie es mit dem Benutzer- und Channel-Management zusammenhängt, und es werden einige interaktive Beispiele gegeben, die Ihnen helfen zu verstehen, wie BizOps Workspace Sie bei der Verwaltung Ihrer Lösung unterstützen kann.

Was ist App Context?

App Context (früher bekannt als Objects) ermöglicht es Ihnen,:

  • den Benutzern und Kanälen in Ihrer Anwendung und den Beziehungen zwischen ihnen eine Bedeutung zu geben.
  • Metadaten für alle Ihre Entitäten auf dem Server zu speichern, was es einfach macht, eine globale Quelle der Wahrheit für Ihre Clients bereitzustellen. Beachten Sie, dass ein Benutzer kein menschliches Wesen repräsentieren muss, und es ist üblich, stattdessen den Gerätestatus innerhalb des Benutzerobjekts zu speichern.
  • Empfangen Sie sofortige Echtzeit-Ereignisse, wenn sich die Werte eines Objekts ändern.

Obwohl jede Anwendung App Context verwenden kann, ist es besonders beliebt bei Entwicklern, die Chat-Lösungen erstellen.

App Context selbst ist nicht neu. Wenn Sie also bereits damit vertraut sind, überspringen Sie bitte den nächsten Abschnitt, in dem die Funktionen von 'User Management' und 'Channel Management' beschrieben werden.

App Context bietet eine Reihe von vorgeschlagenen Feldern für Ihre Benutzer und Channels sowie vorgeschlagene Felder für die Mitgliedschaften zwischen ihnen. Die meisten dieser Felder sind optional, aber lassen Sie uns einen Blick darauf werfen, wie Sie App Context in einer typischen Chat-Anwendung verwenden könnten.

Benutzer-App-Kontext

Wenn sich ein neuer Benutzer in Ihrer Anwendung anmeldet, vielleicht über einen externen Identitätsanbieter, müssen Sie eine Möglichkeit haben, diesen Benutzer gegenüber PubNub eindeutig zu identifizieren; dies ist die Benutzer-ID, die der Client Ihres Benutzers verwendet, um das PubNub SDK zu initialisieren. Die PubNub-Benutzer-ID ist möglicherweise nicht dieselbe wie die ID, die Sie an anderer Stelle in Ihrer Lösung verwenden, um denselben Benutzer zu identifizieren, daher empfehlen wir, dies im Feld 'External ID' festzuhalten.

Benutzername, E-Mail und Profil-URL bedürfen keiner Erläuterung, aber der Vorteil, sie im App-Kontext zu halten, bedeutet, dass, wenn ein Benutzer eines dieser Felder ändert, die Änderungen in großem Umfang an alle zuhörenden Clients mit App-Kontext-Ereignissen weitergegeben werden können, die von allen unseren SDKs unterstützt werden.

Kanal-App-Kontext

PubNub erstellt automatisch Channels, wenn ein Benutzer sie abonniert oder veröffentlicht, aber Channels repräsentieren wahrscheinlich etwas, das für Ihre Anwendung von Bedeutung ist, z.B. könnten Sie in einer Chat-App einen Gruppen-Chat haben, der einen Channel zur Kommunikation verwendet, oder ein Live-Event könnte einen dedizierten Channel zur Verwaltung von Umfragen verwenden.

Die Angabe von App Context für einen Kanal speichert und aktualisiert alle gewünschten Metadaten zu diesem Kanal, wobei diese Aktualisierungen optional an alle interessierten Clients weitergegeben werden. Sie könnten einem Kanal einen Namen geben, z. B. "Chat zwischen Benutzer A und Benutzer B", und vielleicht ist der Kanal mit einer Dokumentenspeicherung verbunden, die in einem benutzerdefinierten "URI"-Feld verfolgt werden könnte.

App-Kontext für die Mitgliedschaft

Nachdem wir den App-Kontext sowohl für unsere Benutzer als auch für unsere Kanäle definiert haben, können wir nun die Beziehung zwischen den beiden definieren, indem wir angeben, ob Benutzer "Mitglieder" eines Kanals sind.

Wenn ein Benutzer einem Channel beitritt, kann er Aktualisierungen über jedes andere Mitglied desselben Channels erhalten; er kann benachrichtigt werden, wenn Benutzer "beitreten" oder "austreten" und wenn der App-Kontext dieses Benutzers aktualisiert wird (z. B. wenn er seinen Namen aktualisiert).

Dies ist ein täuschend mächtiger Mechanismus, der vor allem für Entwickler von Chat-Apps von*großem Nutzen* ist. Wenn Sie App Context nicht verwenden würden, müssten Sie jeden Benutzer selbst verfolgen, in welchen Kanälen er Mitglied ist, und alle anderen in demselben Kanal benachrichtigen, wenn der Benutzer hinzukommt oder geht. Diese Herausforderung ist nicht linear skalierbar, d. h. je mehr Benutzer Sie in Ihrer Lösung haben, desto schwieriger wird es für Sie, all diese Informationen zentral zu verwalten.

Durch den Einsatz von App Context erhalten Ihre Chat-Clients alle Informationen, die sie zur Aufrechterhaltung ihres internen Status benötigen, und Sie haben mit dem PubNub Access Manager auch die volle Kontrolle über diese Daten, um unbefugten Zugriff zu verhindern.

Was ist Benutzer- und Kanalmanagement?

User Management" und "Channel Management" bieten die Möglichkeit, die App Context-Daten Ihrer Anwendung auf dem Server über das PubNub-Administrationsportal zu ändern. Sie können beispielsweise den Namen eines Benutzers oder eine Channel-Beschreibung ändern oder einen Benutzer löschen, der nicht mehr benötigt wird.

Bisher musste jeder, der den App Context einer Anwendung aktualisieren wollte, ein spezielles Frontend entwickeln, das eines unserer SDKs nutzte, um die gewünschten Änderungen vorzunehmen. Mit diesen neuen Verwaltungsfunktionen können Sie Ihre App Context-Daten ohne Neuentwicklung aktualisieren.

Um die Benutzer- oder Kanalverwaltung zu nutzen, benötigen Sie:

  • App Context auf Ihrem Keyset aktiviert

  • App Context in Ihrer Anwendung verwenden, um Metadaten über Ihre Benutzer und/oder Channels sowie die Mitgliedschaften zwischen diesen Entitäten zu speichern. Es spielt keine Rolle, welches SDK Sie verwenden, obwohl wir unser Chat SDK für Typescript-Entwickler empfehlen, die neue Chat-Apps erstellen; die Funktion funktioniert mit jedem unserer SDKs.

  • Ein kostenpflichtiger Preisplan; weitere Einzelheiten finden Sie in den BizOps Workspace-Dokumenten.

Benutzerverwaltung

Im Bereich Benutzerverwaltung können Sie:

  • Benutzer erstellen oder löschen

  • Filter und Suche nach Benutzern

  • Erstellen oder Aktualisieren der mit den Benutzern verbundenen Metadaten

  • Erstellen oder Aktualisieren der Channel-Mitgliedschaften für diese Benutzer.

So können Sie beispielsweise Benutzer löschen, die nicht mehr in Ihrem System aktiv sind, oder neue Benutzer zu Testzwecken erstellen, ohne dass Sie diese Benutzer separat bereitstellen müssen.

Jeder Benutzer, für den Sie einen App-Kontext bereitgestellt haben, wird in der Benutzerverwaltungsansicht angezeigt. Wenn Sie unser Chat-SDK verwenden, verwaltet dieses SDK den App-Kontext für Sie im Hintergrund; beispielsweise ruft die Chat-SDK-Methode'createUser()' im Verborgenen die JavaScript-Funktion setUUIDMetadata auf. Wenn Sie ein anderes SDK als das Chat-SDK verwenden, werden spezielle APIs bereitgestellt, um Ihre App-Kontextdaten zu ändern. Ich habe bereits die JavaScript-API erwähnt, aber es gibt Entsprechungen für alle unsere APIs, einschließlich Java, Swift, Kotlin, Python, Unity usw.

Die Dokumentationsseite zur Benutzerverwaltung führt Sie durch die Verwendung der Benutzerverwaltung; denken Sie daran, bei Bedarf Mitgliedschaften für jeden neuen Benutzer zu erstellen (Channels zuweisen).

Channel-Verwaltung

Ähnlich wie in der Benutzerverwaltung können Sie im Bereich Kanalverwaltung Kanäle erstellen oder löschen, die mit den Kanälen verbundenen Metadaten aktualisieren und die Benutzer, die Mitglieder dieser Kanäle sind, aktualisieren.

So können Sie beispielsweise Kanäle löschen, die nicht mehr aktiv sind, oder neue Kanäle erstellen, um neue Funktionen in Ihrer Umgebung zu testen, ohne die Produktionsdaten zu berühren.

Jeder Channel, für den Sie App Context bereitgestellt haben, wird in der Channel Management-Ansicht angezeigt. Wenn Sie unser Chat-SDK verwenden, wird der App Context für Sie im Hintergrund verwaltet; beispielsweise ruft die Familie der"Create Channel"-Methoden JavaScript's setChannelMetadata() und setMemberships im Verborgenen auf. Wenn Sie ein anderes SDK als das Chat-SDK verwenden, werden spezielle APIs bereitgestellt, um Ihre App Context-Daten zu ändern.

Die Dokumentationsseite zum Channel Management führt Sie durch die Verwendung des Channel Managements; denken Sie nur daran, Mitgliedschaften für jeden neuen Channel zu erstellen (Benutzer zuweisen), falls erforderlich.

Interaktive Demo Benutzer- und Kanalverwaltung

Ich habe eine interaktive Demo-Anwendung erstellt, da es viel einfacher ist, die Benutzer- und Kanalverwaltung zu verstehen, wenn man sie benutzt oder vorgeführt bekommt.

Den Anwendungscode finden Sie auf unserem PubNubDevelopers GitHub-Konto oder Sie können eine gehostete Version der Anwendung unter https://pubnubdevelopers.github.io/App-Context-Exerciser/ sehen . Wenn Sie diesen Artikel auf PubNub.com lesen, sollten Sie die Anwendung auch in einem iFrame unten eingebettet sehen

Wenn der eingebettete Inhalt auf dieser Seite nicht verfügbar ist, kann er auch unter https://pubnubdevelopers.github.io/App-Context-Exerciser/ eingesehen werden.

Einrichten der interaktiven Demo

Die Demo wird einen neuen Benutzer in deinem Keyset erstellen, um sich selbst zu repräsentieren und allen Kanälen beizutreten, die sie in deinem Keyset findet. Aus diesem Grund würde ich dringend empfehlen, ein neues Keyset zu erstellen, wenn du mit dieser Demo spielst.

  1. Erzeugen Sie ein neues PubNub Keyset über das Admin-Portal.

  2. Aktivieren Sie App Context für dieses Keyset

  3. Aktivieren Sie User-, Channel- und Membership-Metadaten-Ereignisse für dieses Keyset. Diese Optionen befinden sich im Abschnitt App Context auf der Key-Konfigurationsseite. Wenn Sie diese Optionen nicht aktivieren, werden die Updates nicht in der App angezeigt.

  4. Belassen Sie alle anderen Schlüsselkonfigurationsoptionen auf ihren Standardwerten

  5. Notieren Sie sich die im ersten Schritt erstellten Veröffentlichungs- und Anmeldeschlüssel

  6. Geben Sie die Veröffentlichungs- und Anmeldeschlüssel in die entsprechenden Textfelder ein und klicken Sie auf "Speichern".

Verwenden der interaktiven Demo

Wenn Sie Ihre Veröffentlichungs- und Anmeldeschlüssel in die Demo eingeben, wird sie:

  • einen Benutzer erstellen, der sich selbst in Ihrem Keyset repräsentiert

  • Abfrage der aktuellen Benutzer und Channels, die in Ihrem Keyset verfügbar sind. Wenn keine Channels gefunden werden, werden einige Testchannels und Benutzer erstellt.

  • Der Benutzer, der die interaktive Demo repräsentiert, tritt allen Channels bei, die er findet, so dass er Aktualisierungen dieser Channels und der zugehörigen Benutzer empfangen kann. Wenn Ihnen das sehr freizügig vorkommt, denken Sie daran, dass Sie in der Produktion den Access Manager in Ihrem Keyset aktiviert haben, der unautorisierten Zugriff verhindert.

  • Wechseln Sie nun zu den Funktionen "User Management" und "Channel Management" unter BizOps Workspace im PubNub-Admin-Portal.

  • Sie sollten einige Standardbenutzer und -kanäle sehen, die unter den Bildschirmen User Management und Channel Management erstellt wurden.

  • Aktualisieren Sie den App-Kontext für Benutzer, Channels und Mitgliedschaften. Sie sollten sehen, dass Ihre Aktualisierungen in der Demo-App angezeigt werden.

  • Verwenden Sie bei Bedarf die Schaltfläche "Daten aktualisieren", um die neuesten Aktualisierungen aus dem App-Kontext abzurufen; dies ist nur erforderlich, wenn Sie einen Benutzer oder Channel erstellt haben, der keine Mitgliedschaften mit dem Benutzer der Testanwendung teilt.

Der obige Screenshot zeigt die Aktualisierung des App Context für user_1, insbesondere der Felder Name und E-Mail, sowie das Hinzufügen einiger benutzerdefinierter Daten.

Der obige Screenshot zeigt die Aktualisierung der App Conext für den Kanal test_channel3, insbesondere die Felder Name und Beschreibung, sowie einige benutzerdefinierte Daten.

Der obige Screenshot zeigt, wie alle Benutzer aus testchannel_3 entfernt werden, so dass der Channel nun keine Mitglieder mehr hat. Beachten Sie, dass die Mitgliedschaften nicht mehr in der Ansicht "Mitgliedschaften" zu sehen sind.

Beispiele für die Verwendung des PubNub Chat SDK

Obwohl die Benutzer- und Kanalverwaltung mit jedem SDK und jedem Anwendungsfall funktioniert, ist sie besonders nützlich für Entwickler, die Chat-Anwendungen erstellen. Da wir Entwicklern empfehlen, Chat-Anwendungen auf der grünen Wiese mit Typescript zu erstellen, um unser Chat-SDK zu verwenden, wird dieser Abschnitt die Verwendung dieser Verwaltungsfunktionen mit diesem SDK veranschaulichen.

Die Beispiel-Chat-Anwendung, die Teil des Chat-SDK ist, zeigt ein einfaches Beispiel für eine 1:1-Direktkonversation zwischen zwei Benutzern über einen einzelnen Channel. Wie bereits erwähnt, verwendet das Chat-SDK App Context, um die Beziehungen zwischen diesen Benutzern und Channels zu speichern, sodass wir BizOps Workspace verwenden können, um diese Daten zu aktualisieren.

Wenn Sie diese Schritte selbst ausführen, müssen Sie die Chat-Anwendung aktualisieren, um alle Aktualisierungen zu sehen, die Sie im Backend vornehmen; dies liegt daran, dass diese sehr einfache Anwendung nicht geschrieben wurde, um auf Änderungen in App Context zu hören. Dies ist eine Einschränkung der Anwendung, nicht eine Einschränkung des Chat SDK, da Sie über die Familie der streamUpdates() -APIs auf Aktualisierungen hören können.

Um die Kanaldaten mit der Beispiel-Chat-Anwendung zu verwalten, können Sie den Kanalnamen ändern und sehen, dass der aktualisierte Name oben in der Anwendung angezeigt wird, nachdem Sie den Browser aktualisiert haben.

Um die Benutzerdaten zu verwalten, müssen Sie eine geringfügige Änderung an der userData-Struktur vornehmen; andernfalls werden alle Änderungen, die Sie vornehmen, bei jedem Neuladen der Anwendung neu geschrieben.

Kommentieren Sie alle Einstellungen aus, die Sie z. B. mit "Benutzerverwaltung" ändern möchten:

data: { name: "Mary Watson" /* custom: { initials: "MW", avatar: "#ffab91" }*/ },
Enter fullscreen mode Exit fullscreen mode

Aktualisierungen der Mitgliedschaft sind mit der Beispiel-Chat-App etwas schwieriger darzustellen, aber der einfachste Ansatz, den ich mir vorstellen kann, wäre, die Funktion handleSend() so zu ändern, dass sie die aktuelle Anzahl der Mitglieder ausgibt, wenn jede Nachricht gesendet wird; auf diese Weise können Sie Aktualisierungen sehen, ohne die App neu laden zu müssen.

Ändern Sie die Funktion handleSend() wie folgt:

const members = await channel.getMembers()
await channel.sendText(text + "... channel members total: " + members.total)
Enter fullscreen mode Exit fullscreen mode

Der obige Screenshot bedarf einer kurzen Erklärung; er ist das Ergebnis von

  1. Senden einer Nachricht, ohne die App-Kontextdaten für Mitgliedschaften zu ändern. Dies führt zu einer Nachricht, die besagt, dass es 2 Kanalmitglieder gibt.

  2. Löschen eines der Mitglieder aus dem Kanal, wobei es keine Rolle spielt, welches.

  3. Senden einer weiteren Nachricht, diesmal mit dem Ergebnis, dass es nur 1 Mitglied des Channels gibt.

  4. Wenn wir Schritt 2 wiederholen, würde jede folgende Nachricht besagen, dass es 0 Mitglieder im Kanal gibt.

Moment mal... Wenn ich kein Mitglied des Channels bin, warum erhalte ich dann noch Nachrichten? Dies ist eine häufig gestellte Frage, und wie in der Dokumentation erwähnt, müssen Sie connect() aufrufen, um sich für den Empfang von Nachrichten anzumelden, was von der Mitgliedschaft, die durch die API für die Kanalerstellung hergestellt wird, getrennt ist - BizOps Workspace befasst sich nur mit Letzterem.

Zusammenfassung

BizOps Workspace bietet Ihnen die Möglichkeit, Ihre Benutzer- und Channel-Metadaten auf einfache Weise zu verwalten, was früher eine dedizierte Anwendung und Entwicklungsaufwand erfordert hätte.

Obwohl sich dieser Artikel auf die Erstellung einer neuen Anwendung konzentriert hat, ist BizOps Workspace auch für Entwickler mit bestehenden Anwendungen nützlich. Vorausgesetzt, Ihre Anwendung wurde so geschrieben, dass sie App Context verwendet, was seit einiger Zeit das empfohlene Entwicklungsmuster für produktive PubNub-Chatanwendungen ist, sollten Sie in der Lage sein, die in diesem Artikel besprochenen Funktionen zu nutzen, ohne Änderungen an Ihrem Code vorzunehmen.

User Management und Channel Management funktionieren mit jedem PubNub SDK. Entwickler, die das Chat-SDK verwenden, haben es jedoch leichter, da App Context in die zugrunde liegende Architektur des Chat-SDK integriert ist. Wenn Sie das Chat-SDK verwenden, werden User- und Channel-Management "einfach funktionieren".

Wenn Sie Hilfe oder Unterstützung benötigen, wenden Sie sich bitte an unser engagiertes Support-Team oder senden Sie eine E-Mail an unser Developer Relations Team unter devrel@pubnub.com.

Wie kann PubNub Ihnen helfen?

Dieser Artikel wurde ursprünglich auf PubNub.com veröffentlicht.

Unsere Plattform hilft Entwicklern bei der Erstellung, Bereitstellung und Verwaltung von Echtzeit-Interaktivität für Webanwendungen, mobile Anwendungen und IoT-Geräte.

Die Grundlage unserer Plattform ist das größte und am besten skalierbare Echtzeit-Edge-Messaging-Netzwerk der Branche. Mit über 15 Points-of-Presence weltweit, die 800 Millionen monatlich aktive Nutzer unterstützen, und einer Zuverlässigkeit von 99,999 % müssen Sie sich keine Sorgen über Ausfälle, Gleichzeitigkeitsgrenzen oder Latenzprobleme aufgrund von Verkehrsspitzen machen.

PubNub erleben

Sehen Sie sich die Live Tour an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen

Einrichten

Melden Sie sich für einen PubNub-Account an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln

Beginnen Sie

Mit den PubNub-Dokumenten können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder SDK

Top comments (0)