Jak zarządzać użytkownikami i kanałami za pomocą BizOps Workspace

pubnubdevrel

PubNub Developer Relations

Posted on April 4, 2024

Jak zarządzać użytkownikami i kanałami za pomocą BizOps Workspace

Ten artykuł instruktażowy jest częścią serii artykułów omawiających możliwości zarządzania danymi PubNub, znane pod wspólną nazwą BizOps Workspace:

BizOps Workspace to zestaw narzędzi, które pomagają zarządzać aplikacją. W tym artykule przyjrzymy się funkcjom "User Management" i*"Channel Management*", które pozwalają zarządzać metadanymi App Context o użytkownikach i kanałach, a także relacjami "członkostwa" między nimi bez modyfikowania jakiegokolwiek kodu. Ten artykuł wyjaśni, czym jest App Context i jak odnosi się do zarządzania użytkownikami i kanałami, a także dostarczy kilka interaktywnych przykładów, które pomogą zrozumieć, w jaki sposób BizOps Workspace może pomóc w zarządzaniu rozwiązaniem.

Czym jest App Context?

AppContext (wcześniej znany jako Objects) pozwala na:

  • Nadanie znaczenia użytkownikom i kanałom w aplikacji oraz relacjom między nimi.
  • Przechowywanie metadanych dla wszystkich podmiotów na serwerze, co ułatwia zapewnienie globalnego źródła prawdy dla klientów. Należy pamiętać, że użytkownik nie musi reprezentować człowieka, a zamiast tego często przechowuje się stan urządzenia w obiekcie użytkownika.
  • Otrzymywanie natychmiastowych zdarzeń w czasie rzeczywistym za każdym razem, gdy zmieniają się wartości obiektu.

Chociaż każda aplikacja może korzystać z App Context, jest on szczególnie popularny wśród programistów tworzących rozwiązania Chat.

Sam App Context nie jest nowy, więc jeśli jesteś już z nim zaznajomiony, przejdź do następnej sekcji, która omawia, co zapewniają "Zarządzanie użytkownikami" i "Zarządzanie kanałami".

App Context zapewnia zestaw sugerowanych pól dla użytkowników i kanałów, a także sugerowane pola dla członkostwa między nimi. Większość z tych pól jest opcjonalna, ale przyjrzyjmy się, jak można wykorzystać App Context w typowej aplikacji czatu.

Kontekst aplikacji użytkownika

Gdy nowy użytkownik zostanie zarejestrowany w aplikacji, być może za pośrednictwem zewnętrznego dostawcy tożsamości, będziesz musiał w jakiś sposób jednoznacznie zidentyfikować tego użytkownika w PubNub; jest to identyfikator użytkownika, którego klient użytkownika użyje do zainicjowania PubNub SDK. Identyfikator użytkownika PubNub może nie być taki sam jak identyfikator używany w innym miejscu rozwiązania do identyfikacji tego samego użytkownika, dlatego zalecamy śledzenie tego w polu "External ID".

Nazwa użytkownika, adres e-mail i adres URL profilu nie wymagają wyjaśnienia, ale korzyść z przechowywania ich w App Context oznacza, że jeśli użytkownik zmieni którekolwiek z tych pól, zmiany mogą być propagowane na dużą skalę do wszystkich klientów nasłuchujących za pomocą zdarzeń App Context, które są obsługiwane przez wszystkie nasze zestawy SDK.

Kanał App Context

PubNub tworzy kanały automatycznie za każdym razem, gdy użytkownik je subskrybuje lub publikuje, ale kanały prawdopodobnie reprezentują coś znaczącego dla aplikacji, na przykład w aplikacji czatu możesz mieć czat grupowy, który używa kanału do komunikacji lub wydarzenie na żywo może używać dedykowanego kanału do zarządzania ankietami.

Określenie App Context dla kanału spowoduje przechowywanie i aktualizowanie wszelkich pożądanych metadanych związanych z tym kanałem, przy czym aktualizacje te będą opcjonalnie propagowane do wszystkich zainteresowanych klientów. Możesz nadać kanałowi nazwę, np. "Czat między użytkownikiem A i użytkownikiem B", a być może kanał jest związany z przechowywaniem dokumentów, które można śledzić w niestandardowym polu "URI".

Kontekst aplikacji członkostwa

Po zdefiniowaniu App Context zarówno dla naszych użytkowników, jak i kanałów, możemy teraz zdefiniować relację między nimi, określając, czy użytkownicy są "członkami" kanału.

Gdy użytkownik dołącza do kanału, może otrzymywać aktualizacje dotyczące każdego innego członka tego samego kanału; może być powiadamiany, gdy użytkownicy "dołączają" lub "opuszczają", a także za każdym razem, gdy kontekst aplikacji tego użytkownika jest aktualizowany (np. aktualizują swoją nazwę).

Jest to*zwodniczo potężny mechanizm, który zapewnia dużą wartość*, szczególnie dla twórców aplikacji do czatu. Gdybyś nie korzystał z App Context, musiałbyś samodzielnie śledzić każdego użytkownika, którego kanały są członkami, i powiadamiać wszystkich innych w tym samym kanale, gdy użytkownik dołącza lub opuszcza. To wyzwanie nie skaluje się liniowo, więc im więcej użytkowników masz w swoim rozwiązaniu, tym trudniej jest próbować zarządzać wszystkimi tymi informacjami centralnie.

Korzystając z App Context, klienci czatu otrzymują wszystkie informacje potrzebne do utrzymania ich wewnętrznego stanu, a Ty masz pełną kontrolę nad tymi danymi dzięki PubNub Access Manager, aby zapobiec nieautoryzowanemu dostępowi.

Czym jest zarządzanie użytkownikami i kanałami?

"Zarządzanie użytkownikami" i "Zarządzanie kanałami" umożliwia modyfikowanie danych App Context aplikacji na serwerze za pośrednictwem portalu administracyjnego PubNub. Na przykład możesz chcieć zmienić nazwę użytkownika lub opis kanału lub usunąć użytkownika, który nie jest już potrzebny.

Wcześniej każdy, kto chciał zaktualizować App Context aplikacji, musiał opracować dedykowany frontend, który wykorzystywał jeden z naszych zestawów SDK do wprowadzenia wymaganych zmian. Te nowe funkcje zarządzania umożliwiają aktualizację danych App Context bez konieczności tworzenia nowych aplikacji.

Aby korzystać z zarządzania użytkownikami lub kanałami, wymagane są

  • App Context włączony na twoim zestawie klawiszy

  • Aby używać App Context w aplikacji do przechowywania metadanych o użytkownikach i/lub kanałach, a także członkostwa między tymi podmiotami. Nie ma znaczenia, z którego zestawu SDK korzystasz, chociaż zalecamy nasz Chat SDK dla programistów Typescript tworzących nowe aplikacje do czatu; funkcja będzie działać z każdym z naszych zestawów SDK.

  • Płatny plan cenowy. Więcej informacji można znaleźć w dokumentacji BizOps Workspace.

Zarządzanie użytkownikami

Panel zarządzania użytkownikami umożliwia

  • Tworzenie lub usuwanie użytkowników

  • filtrowanie i wyszukiwanie użytkowników

  • Tworzenie lub aktualizowanie metadanych powiązanych z użytkownikami

  • Tworzenie lub aktualizowanie członkostwa w kanałach dla tych użytkowników.

Na przykład można usunąć użytkowników, którzy nie są już aktywni w systemie lub utworzyć nowych użytkowników do celów testowych bez konieczności oddzielnego dostarczania tego użytkownika.

Każdy użytkownik, dla którego podałeś App Context, pojawi się w widoku User Management. Jeśli korzystasz z naszego Chat SDK, to ten zestaw SDK obsługuje kontekst aplikacji za kulisami; na przykład metoda Chat SDK"createUser()" wywoła setUUIDMetadata JavaScript pod przykrywką. Jeśli korzystasz z dowolnego zestawu SDK innego niż Chat SDK, dostępne są dedykowane interfejsy API do modyfikowania danych App Context. Wspomniałem już o API JavaScript, ale istnieją odpowiedniki dla wszystkich naszych API, w tym Java, Swift, Kotlin, Python, Unity itp.

Strona dokumentacji dotycząca zarządzania użytkownikami przeprowadzi Cię przez proces zarządzania użytkownikami; pamiętaj tylko, aby w razie potrzeby utworzyć członkostwo dla każdego nowego użytkownika (Przypisz do kanałów).

Zarządzanie kanałami

Panel zarządzania kanałami, podobnie jak panel zarządzania użytkownikami, umożliwia tworzenie lub usuwanie kanałów, aktualizowanie metadanych powiązanych z kanałami, a także aktualizowanie użytkowników, którzy są członkami tych kanałów.

Na przykład można usunąć kanały, które nie są już aktywne lub utworzyć nowe kanały w celu przetestowania nowych funkcji w środowisku bez dotykania danych produkcyjnych.

Każdy kanał, dla którego podałeś App Context, pojawi się w widoku Channel Management. Jeśli korzystasz z naszego Chat SDK, to obsługuje on kontekst aplikacji za kulisami; na przykład rodzina metod"Create channel" wywoła JavaScript's setChannelMetadata() i setMemberships pod przykrywką. Jeśli korzystasz z dowolnego SDK innego niż Chat SDK, to dostępne są dedykowane interfejsy API do modyfikowania danych App Context.

Strona dokumentacji dotycząca Channel Management przeprowadzi Cię przez proces korzystania z Channel Management; pamiętaj tylko, aby w razie potrzeby utworzyć członkostwo dla każdego nowego kanału (Assign Users).

Interaktywne demo zarządzania użytkownikami i kanałami

Stworzyłem interaktywną aplikację demonstracyjną, ponieważ o wiele łatwiej jest zrozumieć zarządzanie użytkownikami i kanałami, używając jej lub widząc ją zademonstrowaną.

Kod aplikacji można znaleźć na naszym koncie PubNubDevelopers GitHub lub zobaczyć hostowaną wersję aplikacji pod adresem https://pubnubdevelopers.github.io/App-Context-Exerciser/. Jeśli przeglądasz ten artykuł na PubNub.com, powinieneś również zobaczyć aplikację osadzoną w iFrame poniżej

Jeśli osadzona zawartość nie jest dostępna na tej stronie, można ją również wyświetlić pod adresem https://pubnubdevelopers.github.io/App-Context-Exerciser/.

Konfiguracja interaktywnego demo

Demo utworzy nowego użytkownika w twoim zestawie kluczy, aby reprezentować siebie i dołączyć do wszystkich kanałów, które znajdzie w twoim zestawie kluczy, z tego powodu zdecydowanie zalecam wygenerowanie nowego zestawu kluczy podczas gry z tym demo.

  1. Wygeneruj nowy zestaw kluczy PubNub z portalu administratora.

  2. Włącz Kontekst aplikacji w tym zestawie kluczy

  3. Włącz zdarzenia metadanych użytkownika, kanału i członkostwa w tym zestawie kluczy. Są to opcje w sekcji Kontekst aplikacji na stronie konfiguracji klucza. Jeśli ich nie włączysz, nie zobaczysz aktualizacji odzwierciedlonych w aplikacji

  4. Pozostaw wszystkie inne opcje konfiguracji klucza na ich domyślnych ustawieniach.

  5. Zanotuj klucze publikowania i subskrypcji wygenerowane w pierwszym kroku.

  6. Wprowadź klucze publikowania i subskrypcji w odpowiednich polach tekstowych i naciśnij "Zapisz".

Korzystanie z interaktywnego demo

Po wprowadzeniu kluczy publikowania i subskrybowania do wersji demonstracyjnej, zostanie ona

  • utworzy użytkownika reprezentującego siebie w zestawie kluczy

  • Wyszuka bieżących użytkowników i kanały dostępne w zestawie kluczy. Jeśli nie znajdzie żadnych kanałów, utworzy kilka kanałów testowych i użytkowników.

  • Użytkownik reprezentujący interaktywne demo dołączy do wszystkich znalezionych kanałów, dzięki czemu będzie mógł otrzymywać aktualizacje dotyczące tych kanałów i powiązanych użytkowników. Jeśli wydaje się to bardzo liberalne, pamiętaj, że w produkcji będziesz mieć włączony Menedżer dostępu na swoim zestawie kluczy, który zapobiega nieautoryzowanemu dostępowi.

  • Teraz przejdź do funkcji "Zarządzanie użytkownikami" i "Zarządzanie kanałami" w obszarze roboczym BizOps w portalu administracyjnym PubNub.

  • Powinieneś zobaczyć domyślnych użytkowników i kanały utworzone odpowiednio na ekranach User Management i Channel Management.

  • Zaktualizuj kontekst aplikacji dla użytkowników, kanałów i członkostwa. Aktualizacje powinny zostać odzwierciedlone w aplikacji demonstracyjnej.

  • W razie potrzeby użyj przycisku "Odśwież dane", aby pobrać najnowsze aktualizacje z App Context; musisz to zrobić tylko wtedy, gdy utworzyłeś użytkownika lub kanał, który nie współdzielił żadnych członkostw z użytkownikiem aplikacji testowej.

Powyższy zrzut ekranu pokazuje aktualizację App Context dla użytkownika user_1, w szczególności pola nazwy i adresu e-mail, wraz z dodaniem niektórych niestandardowych danych.

Powyższy zrzut ekranu pokazuje aktualizację App Conext dla kanału test_channel3, w szczególności pola nazwy i opisu, wraz z niektórymi danymi niestandardowymi.

Powyższy zrzut ekranu pokazuje usunięcie wszystkich użytkowników z kanału test_channel_3, dzięki czemu kanał nie ma teraz żadnych członków. Zwróć uwagę, że członkostwa nie są już obecne w widoku "Memberships".

Przykłady z wykorzystaniem PubNub Chat SDK

Chociaż zarządzanie użytkownikami i kanałami będzie działać z dowolnym SDK i przypadkiem użycia, jest szczególnie przydatne dla programistów tworzących aplikacje czatu. Ponieważ zalecamy programistom tworzenie aplikacji czatu od podstaw przy użyciu Typescript w celu kierowania na nasz Chat SDK, ta sekcja zilustruje te możliwości zarządzania używane z tym SDK.

Przykładowa aplikacja czatu, która jest dostarczana jako część Chat SDK, pokazuje prosty przykład bezpośredniej rozmowy 1:1 między dwoma użytkownikami za pośrednictwem jednego kanału. Jak wspomniano wcześniej, Chat SDK użyje App Context do przechowywania relacji między tymi użytkownikami i kanałami, dzięki czemu możemy użyć BizOps Workspace do aktualizacji tych danych.

Jeśli wykonujesz te kroki samodzielnie, będziesz musiał odświeżyć aplikację czatu, aby zobaczyć wszelkie aktualizacje wprowadzone na zapleczu; dzieje się tak, ponieważ ta bardzo prosta aplikacja nie została napisana do nasłuchiwania zmian w App Context. Jest to ograniczenie aplikacji, a nie ograniczenie Chat SDK, ponieważ możesz nasłuchiwać aktualizacji za pośrednictwem rodziny interfejsów API streamUpdates().

Aby zarządzać danymi kanału za pomocą przykładowej aplikacji czatu, można zmodyfikować nazwę kanału i zobaczyć zaktualizowaną nazwę wyświetlaną w górnej części aplikacji po odświeżeniu przeglądarki.

Aby zarządzać danymi użytkownika, należy wprowadzić niewielką zmianę w strukturze userData; w przeciwnym razie wszelkie wprowadzone zmiany zostaną przepisane przy każdym przeładowaniu aplikacji.

Skomentuj wszystkie ustawienia, które chcesz móc modyfikować, na przykład za pomocą opcji "Zarządzanie użytkownikami":

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

Aktualizacje członkostwa są nieco trudniejsze do pokazania przy użyciu przykładowej aplikacji czatu, ale najłatwiejszym podejściem, jakie mogę wymyślić, byłoby zmodyfikowanie funkcji handleSend (), aby wyświetlała bieżącą liczbę członków podczas wysyłania każdej wiadomości; w ten sposób można zobaczyć aktualizacje bez konieczności przeładowywania aplikacji.

Zmodyfikuj funkcję handleSend () w następujący sposób:

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

Powyższy zrzut ekranu wymaga krótkiego wyjaśnienia; jest to wynik

  1. Wysłania wiadomości bez modyfikowania jakichkolwiek danych App Context dla Memberships. Powoduje to wyświetlenie komunikatu informującego o 2 członkach kanału.

  2. Usunięcie jednego z członków z kanału, nie ma znaczenia który.

  3. Wysłanie kolejnej wiadomości, tym razem obserwując, że wiadomość mówi, że jest tylko 1 członek kanału.

  4. Jeśli powtórzymy krok 2, każda kolejna wiadomość będzie informować, że w kanale jest 0 członków.

Czekaj... Jeśli nie jestem członkiem kanału, dlaczego wciąż otrzymuję wiadomości? Jest to częste pytanie i jak wspomniano w dokumentacji, musisz wywołać connect(), aby zasubskrybować otrzymywanie wiadomości, co jest niezależne od członkostwa ustanowionego przez API tworzenia kanału - BizOps Workspace zajmuje się tylko tym drugim.

Podsumowanie

BizOps Workspace może zapewnić możliwość łatwego zarządzania metadanymi użytkownika i kanału, co wcześniej wymagałoby dedykowanej aplikacji i wysiłku programistycznego.

Chociaż ten artykuł skupiał się na tworzeniu nowej aplikacji, BizOps Workspace jest równie przydatny dla programistów z istniejącymi aplikacjami. Pod warunkiem, że twoja aplikacja została napisana z wykorzystaniem App Context, który od jakiegoś czasu jest zalecanym wzorcem programistycznym dla produkcyjnych aplikacji czatu PubNub, powinieneś być w stanie skorzystać z funkcji omówionych w tym artykule bez wprowadzania jakichkolwiek zmian w kodzie.

Zarządzanie użytkownikami i kanałami będzie działać z każdym PubNub SDK. Mimo to deweloperzy korzystający z Chat SDK będą mieli łatwiejszą drogę do wdrożenia, ponieważ App Context jest wbudowany w podstawową architekturę Chat SDK. Jeśli korzystasz z Chat SDK, User i Channel Management będą "po prostu działać".

Jeśli potrzebujesz pomocy lub wsparcia, skontaktuj się z naszym dedykowanym zespołem wsparcia lub napisz do naszego zespołu ds. relacji z programistami na adres devrel@pubnub.com.

Jak PubNub może ci pomóc?

Ten artykuł został pierwotnie opublikowany na PubNub.com

Nasza platforma pomaga programistom tworzyć, dostarczać i zarządzać interaktywnością w czasie rzeczywistym dla aplikacji internetowych, aplikacji mobilnych i urządzeń IoT.

Fundamentem naszej platformy jest największa w branży i najbardziej skalowalna sieć przesyłania wiadomości w czasie rzeczywistym. Dzięki ponad 15 punktom obecności na całym świecie obsługującym 800 milionów aktywnych użytkowników miesięcznie i niezawodności na poziomie 99,999%, nigdy nie będziesz musiał martwić się o przestoje, limity współbieżności lub jakiekolwiek opóźnienia spowodowane skokami ruchu.

Poznaj PubNub

Sprawdź Live Tour, aby zrozumieć podstawowe koncepcje każdej aplikacji opartej na PubNub w mniej niż 5 minut.

Rozpocznij konfigurację

Załóż konto PubNub, aby uzyskać natychmiastowy i bezpłatny dostęp do kluczy PubNub.

Rozpocznij

Dokumenty PubNub pozwolą Ci rozpocząć pracę, niezależnie od przypadku użycia lub zestawu SDK.

💖 💪 🙅 🚩
pubnubdevrel
PubNub Developer Relations

Posted on April 4, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related