<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: PubNub [Deutsch]</title>
    <description>The latest articles on Forem by PubNub [Deutsch] (@pubnub-de).</description>
    <link>https://forem.com/pubnub-de</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7935%2Fb52bbe95-34f6-429a-b3ab-397ccf0fe7db.jpg</url>
      <title>Forem: PubNub [Deutsch]</title>
      <link>https://forem.com/pubnub-de</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pubnub-de"/>
    <language>en</language>
    <item>
      <title>Verwendung von App Context</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Tue, 09 Jul 2024 06:59:33 +0000</pubDate>
      <link>https://forem.com/pubnub-de/verwendung-von-app-context-2556</link>
      <guid>https://forem.com/pubnub-de/verwendung-von-app-context-2556</guid>
      <description>&lt;p&gt;PubNub &lt;a href="https://www.pubnub.com/products/app-context/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;App Context&lt;/a&gt; vereinfacht die Entwicklung komplexer Echtzeitfunktionen, indem es einen serverlosen Speichermechanismus für Benutzer-, Kanal- und Mitgliedschaftsinformationen bereitstellt. App Context löst Ereignisse aus, sobald sich die Daten ändern, so dass Ihre Anwendungen in Echtzeit aktualisiert werden können. Die gespeicherten Daten können in &lt;a href="https://www.pubnub.com/products/illuminate/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Illuminate&lt;/a&gt;, &lt;a href="https://www.pubnub.com/products/functions/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Funktionen&lt;/a&gt; und anderen PubNub-Diensten verwendet werden, um intelligentere Entscheidungen zu treffen. Sie können diese Daten auch über eine intuitive, codefreie Schnittstelle mit &lt;a href="https://www.pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;BizOps Workspace&lt;/a&gt; verwalten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was ist App Context?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/docs/general/metadata/channel-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;App Context&lt;/a&gt; (früher bekannt als Objects) ermöglicht es Ihnen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  den Benutzern und Kanälen in Ihrer Anwendung und den Beziehungen zwischen ihnen eine Bedeutung zu geben.&lt;/li&gt;
&lt;li&gt;  Speichern von Metadaten für alle Ihre Entitäten auf dem Server, was die Bereitstellung einer globalen Wahrheitsquelle für Ihre Clients vereinfacht. Beachten Sie, dass ein Benutzer nicht unbedingt ein menschliches Wesen darstellen muss, und dass es üblich ist, stattdessen den Gerätestatus im Benutzerobjekt zu speichern.&lt;/li&gt;
&lt;li&gt;  Empfangen Sie sofortige Echtzeit-Ereignisse, wenn sich die Werte eines Objekts ändern.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Obwohl jede Anwendung App Context verwenden kann, ist es besonders bei Entwicklern beliebt, die &lt;a href="https://www.pubnub.com/solutions/chat/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Chat-Lösungen&lt;/a&gt; erstellen.&lt;/p&gt;

&lt;p&gt;App Context bietet eine Reihe von vorgeschlagenen Feldern für Ihre &lt;a href="https://www.pubnub.com/docs/general/metadata/users-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Benutzer&lt;/a&gt; und &lt;a href="https://www.pubnub.com/docs/general/metadata/channel-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Channels&lt;/a&gt; sowie vorgeschlagene Felder für die &lt;a href="https://www.pubnub.com/docs/general/metadata/membership-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Mitgliedschaften&lt;/a&gt; zwischen ihnen. Die meisten dieser Felder sind optional, so dass Sie auswählen können, welche Felder Sie ausfüllen, und auch Ihre eigenen benutzerdefinierten Felder bereitstellen können.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8Gm6KiDx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5ICbXWgNTJNc5kXAAQ4qJI/40b24d228d9ed97e17e47b027469bcdf/app_context_diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8Gm6KiDx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5ICbXWgNTJNc5kXAAQ4qJI/40b24d228d9ed97e17e47b027469bcdf/app_context_diagram.png" title="How-to - BizOps Workspace Manage Users and Channels - Image 01" alt="Diagram showing user management, memberhip, channel management" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  App Context Anwendungsfälle
&lt;/h2&gt;

&lt;p&gt;Wie bereits erwähnt, ist App Context besonders bei Entwicklern beliebt, die Chat-Lösungen erstellen, aber es kann in einer Vielzahl von Anwendungsfällen eingesetzt werden:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Chat:&lt;/strong&gt; Speichern Sie Benutzerinformationen (Name, Profilfoto, Urlaubsstatus, Berufsbezeichnung), Kanalinformationen (Symbol, Beschreibung, Zielgruppe), Benutzerrollen und verfolgen Sie die zuletzt gelesene Nachricht pro Kanal und Benutzer.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Sport, Medien und Unterhaltung:&lt;/strong&gt; Live-Abstimmungen und -Umfragen, Live-Quiz, Echtzeitgebote, CTA-Overlays (Call-to-Action) für Waren oder Werbeaktionen.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Spiele:&lt;/strong&gt; Spielerstatistiken in Echtzeit, einschließlich Spielerlevel, gewonnene Spiele, Abzeichen; Verfolgung und Verwaltung von Ranglisten&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Mehr:&lt;/strong&gt; Abwesenheits-/Aktivitätsstatus des Nutzers, Vertrauenswürdigkeit des Nutzers für die Betrugserkennung, Verfolgung des Nutzerstandorts, IoT-Gerätestatus wie Batteriestand oder letzter Sensorwert&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Aktivieren von App Context
&lt;/h2&gt;

&lt;p&gt;App Context kann wie folgt aktiviert werden:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Loggen Sie sich in das &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Admin Portal&lt;/a&gt; ein&lt;/li&gt;
&lt;li&gt; Klicken Sie auf die Registerkarte "Apps" auf der linken Seite des Portals&lt;/li&gt;
&lt;li&gt; Klicken Sie auf eine Anwendung. Sie werden auf die Seite mit den Schlüsselsätzen für diese Anwendung weitergeleitet.&lt;/li&gt;
&lt;li&gt; Wenn Sie dies noch nicht getan haben, erstellen Sie ein neues Keyset, indem Sie auf die Schaltfläche "Neues Keyset erstellen" klicken. Sie gelangen dann zur Konfigurationsseite für dieses Keyset&lt;/li&gt;
&lt;li&gt; Aktivieren Sie App Context, indem Sie auf den Schieberegler klicken.&lt;/li&gt;
&lt;li&gt; Die Einstellung " &lt;strong&gt;Bucket Region"&lt;/strong&gt; ist die Region, in der Ihre Daten gespeichert werden. Bitte beachten Sie, dass die Region nach dem Speichern der Änderungen am Keyset nicht mehr geändert werden kann.&lt;/li&gt;
&lt;li&gt; Wenn die Einstellungen &lt;strong&gt;Benutzer-Metadaten-Ereignisse&lt;/strong&gt; und &lt;strong&gt;Channel-Metadaten-Ereignisse&lt;/strong&gt; aktiviert sind, werden die Benutzer- und Channel-Ereignisse ausgelöst, wenn Daten in der Datenbank festgelegt oder entfernt werden, wie später beschrieben.&lt;/li&gt;
&lt;li&gt; Wenn die Einstellung &lt;strong&gt;Mitgliedschaftsereignisse&lt;/strong&gt; aktiviert ist, werden Mitgliedschaftsereignisse ausgelöst, wenn Mitgliedschaften hinzugefügt, aktualisiert oder entfernt werden (siehe unten).&lt;/li&gt;
&lt;li&gt; Die übrigen Optionen werden in diesem Artikel nicht behandelt, aber weitere Informationen finden Sie in der &lt;a href="https://www.pubnub.com/docs/general/metadata/basics#configuration?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;App Context-Dokumentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; Klicken Sie auf &lt;strong&gt;Änderungen speichern&lt;/strong&gt;, um diese aktualisierten Änderungen zu speichern.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Benutzer-App-Kontext
&lt;/h2&gt;

&lt;p&gt;Wenn ein neuer Benutzer in Ihre Anwendung aufgenommen wird, z.B. über einen externen Identitätsanbieter, müssen Sie eine Möglichkeit haben, diesen Benutzer gegenüber PubNub eindeutig zu identifizieren; dies ist die &lt;a href="https://www.pubnub.com/docs/general/setup/users-and-devices?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Benutzer-ID&lt;/a&gt;, die der Client Ihres Benutzers zur Initialisierung des PubNub SDK verwendet. Die PubNub-Benutzer-ID ist möglicherweise nicht dieselbe wie die ID, die Sie an anderer Stelle in Ihrer Lösung zur Identifizierung desselben Benutzers verwenden, daher empfehlen wir, dies im Feld "Externe ID" festzuhalten.&lt;/p&gt;

&lt;p&gt;Benutzername, E-Mail und Profil-URL bedürfen keiner Erläuterung, aber der Vorteil, diese innerhalb von App Context zu halten, bedeutet, dass, wenn ein Benutzer eines dieser Felder ändert, die Änderungen in großem Umfang an alle zuhörenden Clients weitergegeben werden können, indem App Context-Ereignisse verwendet werden, die von allen unseren SDKs unterstützt werden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie erstelle ich eine Benutzerdarstellung in App Context?
&lt;/h3&gt;

&lt;p&gt;Es gibt zwei Möglichkeiten, einen App Context-Benutzer zu erstellen.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Benutzer können über den &lt;a href="https://www.pubnub.com/docs/bizops-workspace/basics?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;BizOps Workspace&lt;/a&gt; im PubNub-Administrationsportal erstellt und verwaltet werden. Dies erfordert keinen Code und der Prozess wird mit Beispielen in einem separaten Artikel erklärt: &lt;a href="https://www.pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Verwalten von Benutzern und Channels mit BizOps Workspace&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; Jedes unserer SDKs stellt APIs zur Verfügung, um Benutzer zu erstellen. Wenn Sie unser &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Chat-SDK&lt;/a&gt; verwenden, verwaltet dieses SDK den Anwendungskontext für Sie hinter den Kulissen; zum Beispiel ruft die Chat-SDK-Methode&lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/create?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;createUser()&lt;/a&gt;" im Verborgenen die JavaScript-Methode &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-user-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;setUUIDMetadata&lt;/a&gt; auf, um einen Benutzer zu erstellen. Wenn Sie ein anderes SDK als das Chat-SDK verwenden, stehen spezielle APIs zur Verfügung, um Ihre App-Kontextdaten zu ändern. Ich habe bereits die JavaScript &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-user-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;setUIDMetadata&lt;/a&gt; API erwähnt, aber es gibt Äquivalente für alle unsere APIs, einschließlich &lt;a href="https://www.pubnub.com/docs/sdks/java/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Java&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/swift/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Swift&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/kotlin/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Kotlin&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/python/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Python&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Unity&lt;/a&gt;, etc.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Kanal-App-Kontext
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Wenn Sie App Context für einen Kanal angeben, werden alle gewünschten Metadaten zu diesem Kanal gespeichert und aktualisiert, 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie erstelle ich eine Channel-Darstellung in App Context?
&lt;/h3&gt;

&lt;p&gt;Ähnlich wie bei Benutzern gibt es zwei Möglichkeiten, einen App Context Channel zu erstellen.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Channels können mit &lt;a href="https://www.pubnub.com/docs/bizops-workspace/basics?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;BizOps Workspace&lt;/a&gt; erstellt und verwaltet werden. Dazu ist kein Code erforderlich, und der Prozess wird mit Beispielen in einem separaten Artikel erläutert: &lt;a href="https://www.pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Verwalten von Benutzern und Channels mit BizOps Workspace&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; Jedes unserer SDKs stellt APIs zur Verfügung, um Channels zu erstellen. Wenn Sie unser &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Chat-SDK&lt;/a&gt; verwenden, wird der Anwendungskontext für Sie hinter den Kulissen gehandhabt; zum Beispiel ruft die Familie der&lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;"&lt;/a&gt; Kanal&lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;erstellen&lt;/a&gt; "-Methoden im Verborgenen die JavaScript-Funktion &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;setChannelMetadata()&lt;/a&gt; auf. Wenn Sie ein anderes SDK als das Chat-SDK verwenden, stehen Ihnen spezielle APIs zur Verfügung, um Ihre App-Kontextdaten zu ändern, einschließlich &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/java/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Java&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/swift/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Swift&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/kotlin/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Kotlin&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/python/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Python&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Unity&lt;/a&gt; usw.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  App-Kontext für die Mitgliedschaft
&lt;/h2&gt;

&lt;p&gt;Nachdem wir App Context sowohl für unsere Benutzer als auch für unsere Channels definiert haben, können wir nun die Beziehung zwischen den beiden definieren, indem wir angeben, ob Benutzer &lt;a href="https://www.pubnub.com/docs/general/metadata/membership-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;"Mitglieder"&lt;/a&gt; eines Channels sind.&lt;/p&gt;

&lt;p&gt;Wenn ein Benutzer einem Channel beitritt, kann er Aktualisierungen über jedes andere Mitglied desselben Channels erhalten; er kann benachrichtigt werden, wenn ein Benutzer &lt;code&gt;beitritt&lt;/code&gt; oder &lt;code&gt;austritt&lt;/code&gt; und wenn der App Context dieses Benutzers aktualisiert wird (z. B. wenn er seinen Namen aktualisiert).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dies ist ein täuschend mächtiger Mechanismus, der&lt;/strong&gt; vor allem für Entwickler von Chat-Apps von*&lt;em&gt;großem Nutzen&lt;/em&gt;* 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 im selben Kanal benachrichtigen, wenn dieser Benutzer beitritt oder austritt. Diese Herausforderung lässt sich nicht linear skalieren, d. h. je mehr Benutzer Sie in Ihrer Lösung haben, desto schwieriger wird es für Sie, all diese Informationen zentral zu verwalten.&lt;/p&gt;

&lt;p&gt;Durch die Verwendung von App Context werden Ihren Chat-Clients alle Informationen zur Verfügung gestellt, die sie zur Aufrechterhaltung ihres internen Status benötigen, und Sie haben mit dem PubNub &lt;a href="https://www.pubnub.com/docs/general/security/access-control?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Access Manager&lt;/a&gt; die volle Kontrolle über diese Daten, um unbefugten Zugriff zu verhindern.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wie kann ich eine Mitgliedschaft erstellen?
&lt;/h3&gt;

&lt;p&gt;Ähnlich wie bei Benutzern und Channels gibt es zwei Möglichkeiten, eine Mitgliedschaft zu erstellen.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Mitgliedschaften können mit &lt;a href="https://www.pubnub.com/docs/bizops-workspace/basics?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;BizOps Workspace&lt;/a&gt; erstellt und verwaltet werden, ohne Code zu schreiben. Weitere Einzelheiten finden Sie im Abschnitt &lt;a href="https://www.pubnub.com/docs/bizops-workspace/channel-management#manage-membership?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Mitgliedschaft verwalten&lt;/a&gt; in unserer Dokumentation.&lt;/li&gt;
&lt;li&gt; Über jedes unserer SDKs werden APIs zum Erstellen von Channels bereitgestellt. Wenn Sie unser &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Chat-SDK&lt;/a&gt; verwenden, wird der Anwendungskontext für Sie hinter den Kulissen gehandhabt; beispielsweise ruft die Familie der&lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;"&lt;/a&gt; Channel&lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;erstellen&lt;/a&gt; "-Methoden im Verborgenen die JavaScript-Funktion &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-memberships?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;setMemberships&lt;/a&gt; auf. Wenn Sie ein anderes SDK als das Chat-SDK verwenden, werden dedizierte APIs bereitgestellt, um Ihre App-Kontextdaten zu ändern, einschließlich &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-memberships?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/java/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Java&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/swift/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Swift&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/kotlin/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Kotlin&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/python/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Python&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Unity&lt;/a&gt; usw.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Empfangen von Echtzeit-Ereignissen bei App-Kontextänderungen
&lt;/h2&gt;

&lt;p&gt;Wenn sich App Context-Daten ändern, erhält Ihre Anwendung ein Ereignis, das Sie in Echtzeit über die Änderungen informiert.&lt;/p&gt;

&lt;h3&gt;
  
  
  Empfangen von App Context Änderungen durch das PubNub SDK (außer Chat SDK)
&lt;/h3&gt;

&lt;p&gt;Alle PubNub SDKs stellen "Event Listener" zur Verfügung. Über diese Listener können Sie auf &lt;code&gt;Objekt-Ereignisse&lt;/code&gt; hören, die immer dann ausgelöst werden, wenn sich App Context-Daten ändern.&lt;/p&gt;

&lt;p&gt;Beachten Sie, dass es hier eine kleine Nuance gibt, dass zum Zeitpunkt des Schreibens einige unserer SDKs ein neues Format für "Event Listener" unterstützen, wie in &lt;a href="https://www.pubnub.com/blog/updates-to-the-event-engine-and-event-listeners/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;diesem Blog über Updates der Event Engine und Event Listener&lt;/a&gt; erklärt. Unabhängig vom Format des Ereignis-Listeners bleibt das Prinzip dasselbe: Ihre Anwendung sollte sich registrieren, um App-Kontext-Ereignisse über einen vom SDK bereitgestellten Listener zu empfangen.&lt;/p&gt;

&lt;p&gt;Wie in der &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/publish-and-subscribe#add-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;JavaScript-SDK-Dokumentation&lt;/a&gt; beschrieben, sieht die Registrierung für App Context-Ereignisse wie folgt aus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;channel_1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;subscription&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;subscription&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;subscription&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onObjects&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;objectsEvent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Objects event: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;objectsEvent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dokumentation, die beschreibt, wie man sich für App Context-Ereignisse in anderen Sprachen registriert, finden Sie an den folgenden Stellen: &lt;a href="https://www.pubnub.com/docs/sdks/java/api-reference/publish-and-subscribe#add-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Java&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/swift/api-reference/publish-and-subscribe#add-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Swift&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/kotlin/api-reference/publish-and-subscribe#add-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Kotlin&lt;/a&gt;, &lt;a href="https://www.pubnub.com/docs/sdks/python/api-reference/publish-and-subscribe#add-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Python&lt;/a&gt; (beachten Sie, dass Python die Ereignisse als "Metadaten" bezeichnet, während andere SDKs die Ereignisse als "Objekte" bezeichnen), &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/configuration#event-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Unity&lt;/a&gt;, usw.&lt;/p&gt;

&lt;p&gt;Ein praktisches Beispiel und eine interaktive Demo finden Sie in dem Artikel &lt;a href="https://www.pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/#h-7?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;How to Manage Users and Channels with BizOps Workspace&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Empfangen von App-Kontextänderungen über das PubNub Chat SDK
&lt;/h3&gt;

&lt;p&gt;Das PubNub Chat SDK stellt App Context Events durch die Familie der &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/membership#get-updates?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;streamUpdates()&lt;/a&gt; APIs zur Verfügung.&lt;/p&gt;

&lt;p&gt;Einige Beispiele, entnommen aus der &lt;a href="https://github.com/PubNubDevelopers/Chat-SDK-Demo-Web" rel="noopener noreferrer"&gt;Chat SDK Demo-App&lt;/a&gt; für das Web:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  Detect changes to the current User&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;currentUser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;streamUpdates&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;updatedUser&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;updatedUser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;setName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;updatedUser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;updatedUser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;profileUrl&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;setProfileUrl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;updatedUser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;profileUrl&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;currentUser&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  Detect changes to an array of Channels&lt;/span&gt;
&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;privateGroups&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;Channel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;streamUpdatesOn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;privateGroups&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;channels&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//  The array of channels, privateGroups, has been updated&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;privateGroups&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Für ein Beispiel, das auf unserem einfacheren Beispiel für das Chat SDK basiert, lesen Sie bitte den Artikel &lt;a href="https://www.pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/#h-10?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;How to Manage Users and Channels with BizOps Workspace&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Anwendungskontext und PubNub Illuminate
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/products/illuminate/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub Illuminate&lt;/a&gt; ist ein Echtzeit-Entscheidungs- und -Analyseprodukt, das an den jeweiligen Anwendungsfall einer Organisation angepasst werden kann. Das Produkt wurde mit Blick auf Produktmanager und Analysten entwickelt und ermöglicht ihnen Folgendes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Definieren von benutzerdefinierten aggregierten Echtzeit-Metriken.&lt;/li&gt;
&lt;li&gt;  Einrichten und Bereitstellen von Entscheidungsregeln mit Bedingungen und Aktionen.&lt;/li&gt;
&lt;li&gt;  Sofortige Visualisierung der von Ihnen verfolgten Metriken, der ausgeführten Aktionen und ihrer Ergebnisse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sie können all dies in Echtzeit tun, ohne dass Ihr Entwicklungsteam von seinen laufenden Projekten abgezogen werden muss.&lt;/p&gt;

&lt;p&gt;Eine vollständige Erklärung, was PubNub Illuminte ist und wie es Ihnen sofort verwertbare Einblicke in Ihre Daten geben kann, würde den Rahmen dieses Artikels sprengen.&lt;/p&gt;

&lt;p&gt;Kurz gesagt: Sie definieren &lt;strong&gt;Metriken&lt;/strong&gt;, die sich auf Ihre Anwendung beziehen, d. h. Dinge, die Sie messen möchten. In einem Asset-Tracking-Szenario könnten dies zum Beispiel die Stunden seit der Auftragsannahme sein. Wenn eine &lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics#conditions?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;&lt;strong&gt;Bedingung&lt;/strong&gt;&lt;/a&gt; in Bezug auf diese Metrik erfüllt ist, z. B. wenn die "Stunden seit der Bestellung" einen bestimmten Wert überschreiten, können Sie eine &lt;strong&gt;Aktion&lt;/strong&gt; durchführen.&lt;/p&gt;

&lt;p&gt;Welche &lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics#actions?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Aktion&lt;/a&gt; Sie ergreifen, ist flexibel, aber drei der möglichen Aktionen beziehen sich auf den App-Kontext:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZzqfRlop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/A2XZHFCSuF3nUxDjLDFjX/9b018c14ac44df085c2ad40b40619602/illuminate_app_context.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZzqfRlop--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/A2XZHFCSuF3nUxDjLDFjX/9b018c14ac44df085c2ad40b40619602/illuminate_app_context.png" title="How-to - Use App Context - Image 02" alt="How-to - Use App Context - Image 02" width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Benutzer mit PubNub Illuminate aktualisieren
&lt;/h3&gt;

&lt;p&gt;Ermöglicht es Ihnen, vordefinierte oder benutzerdefinierte Benutzer-Metadaten festzulegen. Der Screenshot unten zeigt, dass der Status des Benutzers mit der ID 123 auf den statischen Wert "New Status" gesetzt wurde, aber es ist auch möglich, einen dynamischen Wert basierend auf der &lt;strong&gt;Bedingung&lt;/strong&gt;, die die &lt;strong&gt;Aktion&lt;/strong&gt; ausgelöst hat, zu setzen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sxO8sTRv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/4Rx8xBy406xLFdGoA38Ll2/f7b62aa24fdba0df4cec6d035a8e5812/illuminate_app_context_user.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sxO8sTRv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/4Rx8xBy406xLFdGoA38Ll2/f7b62aa24fdba0df4cec6d035a8e5812/illuminate_app_context_user.png" title="How-to - Use App Context - Image 03" alt="How-to - Use App Context - Image 03" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Channel aktualisieren mit PubNub Illuminate
&lt;/h3&gt;

&lt;p&gt;Ermöglicht es Ihnen, beliebige vordefinierte oder benutzerdefinierte Channel-Metadaten zu setzen. Der Screenshot unten zeigt, dass der Name des Channels mit der ID 123 auf den statischen Wert "New Name" gesetzt wurde, aber es ist auch möglich, einen dynamischen Wert auf der Grundlage der &lt;strong&gt;Bedingung&lt;/strong&gt; zu setzen, die die &lt;strong&gt;Aktion&lt;/strong&gt; ausgelöst hat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ILHCobfC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5bVUjl1DTF1IENrhLv6T9v/b88e265164dce7dd1f39ed5437467611/illuminate_app_context_channel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ILHCobfC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5bVUjl1DTF1IENrhLv6T9v/b88e265164dce7dd1f39ed5437467611/illuminate_app_context_channel.png" title="How-to - Use App Context - Image 04" alt="How-to - Use App Context - Image 04" width="800" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Aktualisieren von Mitgliedschaften mit PubNub Illuminate
&lt;/h3&gt;

&lt;p&gt;Ermöglicht es Ihnen, vordefinierte oder benutzerdefinierte Metadaten für die Mitgliedschaft zu setzen. Der Screenshot unten zeigt die Mitgliedschaft von User ID 123 im Channel 123, dessen Status auf den statischen Wert "New Status" gesetzt wurde. Es ist auch möglich, einen dynamischen Wert zu setzen, der auf der &lt;strong&gt;Bedingung&lt;/strong&gt; basiert, die die &lt;strong&gt;Aktion&lt;/strong&gt; ausgelöst hat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P0jKJfDZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/ZfrPMbbrj55hsyGpihCC3/44b519ccedde12e574bd44835ce799a3/illuminate_app_context_membership.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P0jKJfDZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/ZfrPMbbrj55hsyGpihCC3/44b519ccedde12e574bd44835ce799a3/illuminate_app_context_membership.png" title="How-to - Use App Context - Image 05" alt="How-to - Use App Context - Image 05" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  App-Kontext und PubNub-Funktionen
&lt;/h2&gt;

&lt;p&gt;PubNub bietet Funktionen zur Erfassung von Ereignissen, die auf der PubNub-Plattform stattfinden. Mit Funktionen können Sie Code schreiben oder bestehende Integrationen nutzen, um Daten umzuwandeln, umzuleiten, zu erweitern, zu filtern und sogar zu aggregieren. Einen genaueren Überblick über PubNub-Funktionen finden Sie in der &lt;a href="https://www.pubnub.com/docs/serverless/functions/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Funktionsdokumentation&lt;/a&gt;. In diesem Artikel geht es jedoch darum, wie PubNub-Funktionen mit App Context zusammenhängen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Aktualisierung von App Context aus PubNub Functions heraus
&lt;/h3&gt;

&lt;p&gt;Die Umgebung, in der die Funktionen ausgeführt werden, hat Zugriff auf das &lt;a href="https://www.pubnub.com/docs/serverless/functions/functions-apis/pubnub-module?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Modul&lt;/a&gt;; dieses Modul hat vollen Zugriff auf den App Context auf Ihrem Keyset, und einige Beispiele aus der Dokumentation sind unten aufgeführt. :&lt;/p&gt;

&lt;p&gt;Beispiel für &lt;a href="https://www.pubnub.com/docs/serverless/functions/functions-apis/pubnub-module#get-user-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Get User App Context Metadata&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pubnub&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;objects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getUUIDMetadata&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;my-uuid&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;include&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;customFields&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Fetched UUID metadata successfully.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Failed to fetch UUID metadata&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Beispiel für &lt;a href="https://www.pubnub.com/docs/serverless/functions/functions-apis/pubnub-module#set-channel-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Set Channel App Context Metadata (Kanal-App-Kontext-Metadaten&lt;/a&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pubnub&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;objects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setChannelMetadata&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;my-channel&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;channel-name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;What a great channel&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;custom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;foo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;include&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;customFields&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Set channel metadata successfully.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Failed to set channel metadata.&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Umfassende Code-Beispiele finden Sie in der Dokumentation des &lt;a href="https://www.pubnub.com/docs/serverless/functions/functions-apis/pubnub-module?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Moduls&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Auslösen einer PubNub-Funktion bei Änderung des App-Kontextes
&lt;/h3&gt;

&lt;p&gt;Es gibt zahlreiche Ereignistypen, die eine Funktion auslösen können, wie in der &lt;a href="https://www.pubnub.com/docs/serverless/functions/overview#event-types?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Dokumentation Event Types&lt;/a&gt; beschrieben. Dazu gehört die Möglichkeit, zu erkennen, wann Nachrichten und Signale gesendet werden, Funktionen nach dem Auftreten von Präsenzereignissen auszulösen und Funktionen in einem bestimmten Intervall oder bei Bedarf auszuführen. Zum Zeitpunkt der Erstellung dieses Artikels ist es &lt;strong&gt;nicht&lt;/strong&gt; möglich, Funktionen nach Aktualisierungen des App-Kontextes auszuführen, aber wenn Sie feststellen, dass Ihre Anwendung dies benötigt, wenden Sie sich bitte an unser &lt;a href="https://support.pubnub.com/hc/en-us?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Support-Team&lt;/a&gt;, das gerne Ihre Anwendungsfälle durchgehen wird.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nächste Schritte
&lt;/h2&gt;

&lt;p&gt;Um App Context in Aktion zu sehen, können Sie sich unsere &lt;a href="https://www.pubnub.com/demos/chat/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Chat-Demo&lt;/a&gt; ansehen, die App Context zusammen mit unserem Chat-SDK verwendet, um zu zeigen, wie eine Chat-App mit serverlosem Speicher aussehen könnte. In der Chat-Demo können Sie Benutzer- und Channel-Metadaten festlegen und sehen, wie sich diese Änderungen in Echtzeit auf andere Zuhörer und Mitglieder übertragen.&lt;/p&gt;

&lt;p&gt;Sehen Sie sich auch unsere 3-teilige Serie über den BizOps-Workspace an, der von App Context abhängt und die folgenden Themen behandelt: &lt;a href="https://www.pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Verwalten von Benutzern und Kanälen&lt;/a&gt;, &lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Überwachen und Moderieren von Konversationen&lt;/a&gt; und &lt;a href="https://www.pubnub.com/how-to/securely-moderate-chat-and-users/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;sicheres Moderieren von Chats&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Und schließlich können Sie sich jederzeit an das DevRel-Team unter &lt;a href="//mailto:devrel@pubnub.com"&gt;devrel@pubnub.com&lt;/a&gt; oder an unser &lt;a href="https://support.pubnub.com/hc/en-us?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Support-Team&lt;/a&gt; wenden, wenn Sie Hilfe zu einem beliebigen Aspekt Ihrer PubNub-Entwicklung benötigen.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wie kann PubNub Ihnen helfen?
&lt;/h1&gt;

&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/how-to/use-app-context/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub.com&lt;/a&gt; veröffentlicht.&lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Sehen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/signup/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Account&lt;/a&gt; an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginnen Sie
&lt;/h2&gt;

&lt;p&gt;Mit den &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Dokumenten&lt;/a&gt; können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;SDK&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Dokumentation Versionshinweise - Juni 2024</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Mon, 08 Jul 2024 12:56:30 +0000</pubDate>
      <link>https://forem.com/pubnub-de/dokumentation-versionshinweise-juni-2024-1l2i</link>
      <guid>https://forem.com/pubnub-de/dokumentation-versionshinweise-juni-2024-1l2i</guid>
      <description>&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/docs/release-notes/2024/june?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;https://www.pubnub.com/docs/release-notes/2024/june&lt;/a&gt; veröffentlicht.&lt;/p&gt;

&lt;p&gt;Hallo zusammen! Diesen Monat haben wir ein paar neue Updates für Sie.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Wir haben ein neues Flag für referentielle Integrität eingeführt, um die Konsistenz Ihrer Daten zu gewährleisten.&lt;/li&gt;
&lt;li&gt;  Sie können jetzt Channel-Gruppen-Grenzen direkt über das Admin-Portal festlegen.&lt;/li&gt;
&lt;li&gt;  Probieren Sie den Import von Daten aus Insights in BizOps aus, um die Funktionen zu testen.&lt;/li&gt;
&lt;li&gt;  Außerdem werden Sie feststellen, dass das Erscheinungsbild von Presence Management überarbeitet wurde.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Darüber hinaus haben wir eine Reihe von kleinen, aber wichtigen Verbesserungen in den Dokumenten vorgenommen, die hoffentlich einige Ihrer Fragen beantworten oder Ihre Zweifel bei der Arbeit mit PubNub ausräumen.&lt;/p&gt;

&lt;p&gt;Viel Spaß beim Stöbern und vielen Dank, dass Sie Teil unserer Community sind!&lt;/p&gt;

&lt;h2&gt;
  
  
  Allgemein 🛠️
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Benutzerdefinierte Felder in FCM Payloads
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verbesserung&lt;/p&gt;

&lt;p&gt;Wir haben die Dokumente für die &lt;a href="https://pubnub.com/docs/general/push/android#step-5-construct-the-push-payload" rel="noopener noreferrer"&gt;Android Mobile Push Notifications&lt;/a&gt; korrigiert, indem wir die fehlenden benutzerdefinierten PubNub-Parameter hinzugefügt haben, die Sie zu Ihrem FCM Mobile Push Notification Payload hinzufügen können: &lt;code&gt;pn_debug&lt;/code&gt;, &lt;code&gt;pn_exceptions&lt;/code&gt; und &lt;code&gt;pn_dry_run&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Damit können Sie Benachrichtigungen testen oder debuggen und ausgewählte Geräte vom Empfang von Benachrichtigungen ausschließen.&lt;/p&gt;

&lt;p&gt;Hier ist ein Beispiel für eine FCM-Nutzlast mit unseren benutzerdefinierten Feldern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pn_fcm&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;notification&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;My Title&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;body&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Message sent at&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
 &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pn_collapse_id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;collapse-id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pn_exceptions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;optional-excluded-device-token1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
 &lt;span class="p"&gt;]&lt;/span&gt;
 &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pn_debug&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pn_dry_run&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Kanalgruppengrenzen
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;Der Stream Controller im Admin-Portal verfügt über eine neue, konfigurierbare Option zur &lt;a href="https://pubnub.com/docs/general/metadata/basics#configuration" rel="noopener noreferrer"&gt;Begrenzung von Kanalgruppen&lt;/a&gt; für Kunden mit &lt;a href="https://www.pubnub.com/pricing/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;kostenpflichtigen Tarifen&lt;/a&gt;, mit der Sie die maximale Anzahl von Kanälen festlegen können, die Kanalgruppen in einem Keyset haben können. Sie können entweder das Standardlimit von 1.000 Channels herabsetzen oder es auf 2.000 Channels erhöhen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pIhkfMKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/channel-group-limit-0dce418184343bd3e6e213b7f21f2038.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pIhkfMKU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/channel-group-limit-0dce418184343bd3e6e213b7f21f2038.png" alt="Channel group limits" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Benutzer-Metadaten-Ereignisse im App-Kontext
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verbesserung&lt;/p&gt;

&lt;p&gt;Wir haben die Dokumentation verbessert, um klarzustellen, dass bei aktivierter Option " &lt;strong&gt;Benutzer-Metadaten-Ereignisse&lt;/strong&gt; " jede Änderung an einer Benutzerentität&lt;code&gt;(Setzen&lt;/code&gt; und &lt;code&gt;Löschen&lt;/code&gt;) dazu führt, dass Ereignisbenachrichtigungen an alle Mitgliedschaftsassoziationen gesendet werden, also sowohl an den Benutzer als auch an jeden Channel, in dem er Mitglied ist. Weitere Details finden Sie in der &lt;a href="https://pubnub.com/docs/general/metadata/basics#app-context-events" rel="noopener noreferrer"&gt;Dokumentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iSi8-HI4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/user-metadata-events-2774cded452142e6d79bdf1a92e95174.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iSi8-HI4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/user-metadata-events-2774cded452142e6d79bdf1a92e95174.png" alt="User metadata events" width="800" height="693"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  App Context Konfigurationsabhängigkeit
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verbesserung&lt;/p&gt;

&lt;p&gt;Wir haben die Dokumente zu den &lt;a href="https://pubnub.com/docs/general/metadata/basics#configuration" rel="noopener noreferrer"&gt;Konfigurationsoptionen von App Context&lt;/a&gt; aktualisiert, um Informationen zu einer kritischen Abhängigkeit aufzunehmen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u1z1QWAq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/get-all-metadata-bf21a99e67f554e65c818b7b71fb9011.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u1z1QWAq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/get-all-metadata-bf21a99e67f554e65c818b7b71fb9011.png" alt="Get all user or channel metadata" width="800" height="624"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Obwohl die Optionen &lt;strong&gt;Disallow Get All Channel Metadata&lt;/strong&gt; und &lt;strong&gt;Disallow Get All User Metadata&lt;/strong&gt; auf den ersten Blick selbsterklärend sind, funktionieren diese Optionen nur bei aktiviertem Access Manager.&lt;/p&gt;

&lt;p&gt;Mit anderen Worten: Ohne Access Manager deaktivieren diese aktiven Optionen nicht wirklich den Abruf von Metadaten über Benutzer oder Kanäle auf einem Keyset. Wenn Sie den Zugriffsmanager aktivieren und damit standardmäßig den Zugriff auf alle Objekte in einem Keyset einschränken, können Sie die GET-Beschränkungen des Zugriffsmanagers für Benutzer und Channels leicht umgehen, indem Sie diese beiden Konfigurationsoptionen deaktivieren, ohne ein feinkörniges Berechtigungsschema zu erstellen.&lt;/p&gt;

&lt;p&gt;Die Admin Portal UI wird diese Abhängigkeit bald ebenfalls widerspiegeln.&lt;/p&gt;

&lt;h3&gt;
  
  
  Neues Flag für referenzielle Integrität im App-Kontext
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;Wir haben eine neue Option &lt;a href="https://pubnub.com/docs/general/metadata/basics#configuration" rel="noopener noreferrer"&gt;&lt;strong&gt;Referentielle Integrität für Mitgliedschaften erzwingen&lt;/strong&gt;&lt;/a&gt; hinzugefügt, die standardmäßig aktiviert wird, wenn Sie App Context für das Keyset Ihrer App im Admin Portal aktivieren.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QjGUW3Kf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/referential-integrity-2288af8171ffc0c8a5c8b67d82106247.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QjGUW3Kf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/referential-integrity-2288af8171ffc0c8a5c8b67d82106247.png" alt="Referential integrity flag" width="800" height="624"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diese Option stellt sicher, dass Sie nur dann eine neue Mitgliedschaft einrichten können, wenn sowohl die Benutzer-ID als auch die Channel-ID, für die Sie die Mitgliedschaft erstellt haben, existieren. Gleichzeitig werden durch das Löschen einer übergeordneten Benutzer- oder Channel-Metadaten-Entität automatisch alle untergeordneten Mitgliedschaftszuordnungen für diese gelöschte Entität gelöscht. Auf diese Weise stellen Sie sicher, dass es keine fehlerhaften oder verwaisten Mitgliedschaftsobjekte in Ihrem Schlüsselsatz gibt.&lt;/p&gt;

&lt;h2&gt;
  
  
  SDKs 📦
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Verbesserungen der Python-Dokumente
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verbesserung&lt;/p&gt;

&lt;p&gt;Aufgrund des Feedbacks, das wir erhalten haben, haben wir die Informationen über die Verwendung und Ausführung von Methoden erweitert. Infolgedessen beschreibt jeder Abschnitt "Returns" in den &lt;a href="https://pubnub.com/docs/sdks/python/api-reference/publish-and-subscribe" rel="noopener noreferrer"&gt;Python SDK-Dokumenten&lt;/a&gt; nun die Datenfelder, die von jeder Methode zurückgegeben werden. Außerdem wird erklärt, wie die Ausführung von sync (&lt;code&gt;.sync()&lt;/code&gt;) und async (&lt;code&gt;.pn_async(callback)&lt;/code&gt;) Anfragen die zurückgegebenen Daten für jede Methode beeinflusst.&lt;/p&gt;

&lt;h3&gt;
  
  
  React SDK wurde veraltet
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verwerfungshinweis&lt;/p&gt;

&lt;p&gt;Da wir das React SDK seit einiger Zeit nicht mehr aktiv weiterentwickelt haben, haben wir uns entschlossen, seine &lt;a href="https://pubnub.com/docs/sdks/react" rel="noopener noreferrer"&gt;Dokumente&lt;/a&gt; offiziell abzulehnen und sie in den Abschnitt &lt;a href="https://pubnub.com/docs/sdks#call-for-contributions" rel="noopener noreferrer"&gt;Call For Contributions&lt;/a&gt; in unseren Dokumenten zu verschieben.&lt;/p&gt;

&lt;p&gt;Wenn Sie einen Fehler im React SDK finden oder seine Funktionalität erweitern wollen, können Sie gerne einen Pull Request im &lt;a href="https://github.com/pubnub/react" rel="noopener noreferrer"&gt;Repo&lt;/a&gt; erstellen und auf unser Feedback warten!&lt;/p&gt;

&lt;h2&gt;
  
  
  Funktionen
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Exportieren von Funktionsprotokollen durch Events &amp;amp; Actions
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;Jede PubNub-Funktion speichert Logs im internen &lt;code&gt;blocks-output-*&lt;/code&gt; Kanal, wie &lt;code&gt;blocks-output-NSPiAuYKsWSxJl4yBn30&lt;/code&gt;, der bis zu 250 Zeilen Logs speichern kann, bevor neue sie überschreiben. Wenn Sie den Überblick über alte Protokolle nicht verlieren wollen, können Sie &lt;a href="https://pubnub.com/docs/general/portal/functions#export-logs-through-events--actions" rel="noopener noreferrer"&gt;diese Protokolle&lt;/a&gt; jetzt mit Events &amp;amp; Actions an einen externen Dienst &lt;a href="https://pubnub.com/docs/general/portal/functions#export-logs-through-events--actions" rel="noopener noreferrer"&gt;exportieren&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YdztgBWT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/functions-log-c9c6bfa2ae883d738837c6fee563167d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YdztgBWT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/functions-log-c9c6bfa2ae883d738837c6fee563167d.png" alt="Functions log" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Einblicke 📊.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Benutzerdauer und Gerätemetriken in den REST-API-Dokumenten
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verbesserung&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pubnub.com/docs/release-notes/2024/may#device-metrics-dashboard" rel="noopener noreferrer"&gt;Letzten Monat&lt;/a&gt; haben wir die Gerätemetriken in das &lt;code&gt;User Behavior&lt;/code&gt; Dashboard in den PubNub Insights auf dem Admin Portal eingeführt. Diesen Monat haben wir die &lt;a href="https://pubnub.com/docs/sdks/rest-api/introduction-16" rel="noopener noreferrer"&gt;REST-API-Dokumente&lt;/a&gt; aktualisiert, um sowohl die Benutzerdauer als auch die Gerätemetriken aufzunehmen, so dass Sie die PubNub Insights API direkt aufrufen können, um die Metriken zu erhalten, die Sie interessieren.&lt;/p&gt;

&lt;h2&gt;
  
  
  BizOps Arbeitsbereich 🏢
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Top 20 Nutzer/Kanäle
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;Wenn Sie App Context nicht zum Speichern und Verwalten von Benutzern und Kanälen verwenden, können Sie die entsprechenden Funktionen von BizOps Workspace dennoch testen, indem Sie Testdaten importieren.&lt;/p&gt;

&lt;p&gt;Wenn Sie Zugang zu PubNub Insights haben, können Sie darauf zugreifen, indem Sie zu den Modulen &lt;strong&gt;User Management&lt;/strong&gt; und &lt;strong&gt;Channel Management&lt;/strong&gt; in BizOps Workspace im Admin Portal gehen und auf die Schaltfläche &lt;strong&gt;Import from Insights&lt;/strong&gt; klicken.&lt;/p&gt;

&lt;p&gt;Als Ergebnis importieren Sie aus dem Keyset Ihrer App maximal 20 Benutzer, die innerhalb des letzten Tages die meisten Nachrichten veröffentlicht haben (wenn gestern keine Nachrichten gesendet wurden, werden die Benutzer anhand der Daten vom Vortag importiert).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--edam1-8B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/top-20-users-346c252e218d37df861ff5ac04538f48.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--edam1-8B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/top-20-users-346c252e218d37df861ff5ac04538f48.png" alt="Top 20 users" width="800" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ähnlich wie bei den Nutzern können Sie aus dem Keyset Ihrer App bis zu 20 Kanäle mit der höchsten Anzahl an Nachrichten importieren, die innerhalb des letzten Tages veröffentlicht wurden.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6mfK6c4r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/top-20-channels-53fad13cd8e1f9a7619aee7330b2fffa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6mfK6c4r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/top-20-channels-53fad13cd8e1f9a7619aee7330b2fffa.png" alt="Top 20 channels" width="800" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nutzen Sie diese Testdaten, um herauszufinden, was BizOps Workspace zu bieten hat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Überarbeitetes Präsenzmanagement UX
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verbesserung&lt;/p&gt;

&lt;p&gt;Wir haben vor kurzem das gesamte &lt;a href="https://pubnub.com/docs/bizops-workspace/presence-management" rel="noopener noreferrer"&gt;Präsenzmanagement-Modul&lt;/a&gt; in BizOps Workspace überarbeitet, um den Assistenten für die Regelerstellung zu vereinfachen, die Farben der Abzeichen in umfassendere Farben zu ändern und eine "Catch All"-Musterkonfiguration hinzuzufügen, die die Standardeinstellung "Präsenz auf allen Kanälen aktivieren" der Präsenzkonfiguration auf dem Keyset widerspiegelt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K4-MWVm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/presence-management-7799538afb99b2c891fc6d957737d819.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K4-MWVm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/presence-management-7799538afb99b2c891fc6d957737d819.png" alt="Presence Management" width="800" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wir hoffen, dass Ihnen das neue Aussehen und die Bedienung gefällt!&lt;/p&gt;

</description>
      <category>pubnub</category>
      <category>documentation</category>
      <category>releases</category>
      <category>releasenotes</category>
    </item>
    <item>
      <title>Dokumentation Versionshinweise - Mai 2024</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Mon, 08 Jul 2024 11:22:42 +0000</pubDate>
      <link>https://forem.com/pubnub-de/dokumentation-versionshinweise-mai-2024-43je</link>
      <guid>https://forem.com/pubnub-de/dokumentation-versionshinweise-mai-2024-43je</guid>
      <description>&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/docs/release-notes/2024/may?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;https://www.pubnub.com/docs/release-notes/2024/may&lt;/a&gt; veröffentlicht.&lt;/p&gt;

&lt;p&gt;Willkommen zu den Versionshinweisen dieses Monats! PubNub bringt Ihnen ein Bündel von Aktualisierungen, die Ihre Arbeit vereinfachen und für mehr Komfort sorgen.&lt;/p&gt;

&lt;p&gt;Was ist in dem Paket enthalten?&lt;/p&gt;

&lt;p&gt;Wir haben die App Context-Datenfilterungsdokumente vereinheitlicht, die Event-Listener-Architektur für Python und Asyncio überarbeitet und neue Tools hinzugefügt, die Ihnen den Einstieg in die sichere Chat-Moderation erleichtern sollen.&lt;/p&gt;

&lt;p&gt;Im Admin-Portal haben wir detaillierte Gerätemetriken eingeführt, die Ereignisverwaltung mit Stapel- und Umhüllungsoptionen verbessert und schicke neue gestapelte Balkendiagramme und variable Funktionen in Illuminate eingeführt.&lt;/p&gt;

&lt;p&gt;Außerdem verfügen unsere Dokumente und unsere Website jetzt über eine neue Suchmaschine mit einer KI, die Ihnen hilft, genau das zu finden, was Sie brauchen.&lt;/p&gt;

&lt;p&gt;Tauchen Sie gleich ein und erkunden Sie die Vorzüge!&lt;/p&gt;

&lt;h2&gt;
  
  
  Allgemein 🛠️
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Vereinheitlichte Informationen zum Filtern von App-Kontextdaten
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Erweiterung&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Basierend auf dem Feedback haben wir Informationen aus verschiedenen SDKs zum Filtern von Benutzer-, Channel- und Mitgliedschaftsdaten mit Hilfe der App Context API von PubNub überprüft und vereinheitlicht. Als Ergebnis haben wir ein &lt;a href="https://pubnub.com/docs/general/metadata/filtering" rel="noopener noreferrer"&gt;App Context Filtering&lt;/a&gt; Dokument (mit zahlreichen Beispielen) erstellt, das als Einstiegspunkt für alle Datenfilterungsabfragen dient.&lt;/p&gt;

&lt;p&gt;Lernen Sie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Welche Benutzer-, Channel- und Mitgliedsdaten Sie filtern können.&lt;/li&gt;
&lt;li&gt;  Welche Filteroperatoren Sie verwenden können.&lt;/li&gt;
&lt;li&gt;  Wie Sie die Daten durch praktische Beispiele filtern können.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;   &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;objects&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getAllChannelMetadata&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
       &lt;span class="na"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;["description"] LIKE "*support*"&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
   &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  SDKs 📦
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Aktualisierte Event-Listener-Architektur für Python &amp;amp; Asyncio
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Die neue Event-Listener-Architektur für &lt;a href="https://pubnub.com/docs/sdks/python/api-reference/publish-and-subscribe" rel="noopener noreferrer"&gt;Python-&lt;/a&gt; und &lt;a href="https://pubnub.com/docs/sdks/asyncio/api-reference/publish-and-subscribe" rel="noopener noreferrer"&gt;Asyncio-SDKs&lt;/a&gt; bietet im Vergleich zum bisherigen monolithischen PubNub-Objekt Möglichkeiten zur Verwaltung von Abonnements und zum Abhören von Ereignissen mit engerem Umfang.&lt;/p&gt;

&lt;p&gt;Während das PubNub-Objekt weiterhin als globaler Bereich dient und abwärtskompatibel bleibt, bietet die neue Architektur "Entity"-Objekte wie Kanäle, Kanalgruppen, Benutzer-Metadaten und Kanal-Metadaten, die Subscription-Objekte zurückgeben.&lt;/p&gt;

&lt;p&gt;Diese Subscriptions ermöglichen subscribe/unscribe-Methoden und &lt;code&gt;addListener/removeListener-Methoden&lt;/code&gt;, die für einzelne Entitäten spezifisch sind, und bieten so eine flexiblere und unabhängigere Möglichkeit, Echtzeit-Ereignisse zu verwalten und die Notwendigkeit einer globalen Zustandsverwaltung zu reduzieren.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="err"&gt;#&lt;/span&gt; &lt;span class="nx"&gt;entity&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;based&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;local&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;scoped&lt;/span&gt;
&lt;span class="nx"&gt;subscription&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;f&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;{channel}&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;subscription&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;with_presence&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Chat 💬.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Beispiel für eine sichere Moderation im Chat SDK
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Unser Chat-Team hat einen einfachen &lt;a href="https://github.com/pubnub/js-chat/blob/master/samples/access-manager-api/README.md" rel="noopener noreferrer"&gt;Access Manager-API-Dienst&lt;/a&gt; erstellt, um Ihnen zu helfen, das End-to-End-Szenario für die Sicherung von Chat-SDK-Anwendungen mit Access Manager zu verstehen. Dieser Dienst simuliert einen einfachen Endpunkt und enthält einen Beispielberechtigungssatz, den Sie verwenden können, um die serverseitige Autorisierung für Ihre Chat SDK-Anwendungen mit aktiviertem Access Manager einzurichten.&lt;/p&gt;

&lt;p&gt;Gehen Sie das gesamte Testszenario mit unserer React Native Chat App (für die Benutzerinteraktion), Channel Monitor (für die Benutzermoderation, wie Stummschaltung und Verbot) und Access Manager API (für die Generierung von Autorisierungs-Tokens) durch.&lt;/p&gt;

&lt;p&gt;Die detaillierten Schritte finden Sie im Blog &lt;a href="https://www.pubnub.com/how-to/securely-moderate-chat-and-users/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;How to Securely Moderate Chat and Users with BizOps Workspace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KI6SFqVa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/muted-user-b18b4534be183d6d207ceeff685e5b44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KI6SFqVa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/muted-user-b18b4534be183d6d207ceeff685e5b44.png" alt="Muted user" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Einblicke 📊.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Dashboard für Gerätemetriken
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Erweitert&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Wir haben das &lt;code&gt;User Behavior&lt;/code&gt; Dashboard in Insights um &lt;a href="https://pubnub.com/docs/pubnub-insights/dashboards/user-behavior" rel="noopener noreferrer"&gt;Metriken zum Gerätetyp&lt;/a&gt; erweitert. So können Sie tief in das Verhalten Ihrer Nutzer pro Gerätetyp eintauchen. Von nun an können Sie beobachten, wo Ihre App-Nutzer am häufigsten veröffentlichen oder abonnieren (iOS, Android und Windows) und die Anzahl der eindeutigen Nutzer pro Gerätetyp überprüfen.&lt;/p&gt;

&lt;p&gt;Dieser Einblick kann Ihnen helfen, benutzerdefinierte Funktionen nach Gerät zu erstellen und so die Kundenerfahrung zu verbessern.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aE1MRxwy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/device-type-1ba35d904878d48813e07a9f581193d5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aE1MRxwy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/device-type-1ba35d904878d48813e07a9f581193d5.png" alt="User behavior &amp;amp; devices" width="800" height="723"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ereignisse &amp;amp; Aktionen ⚡.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Webhook-Aktion unterstützt jetzt Batching
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Enhancement&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Mit der &lt;a href="https://pubnub.com/docs/serverless/events-and-actions/events#batching" rel="noopener noreferrer"&gt;Batching-Funktion&lt;/a&gt; in Events &amp;amp; Action können Sie eine große Anzahl von Ereignissen verwalten, indem Sie sie in einer einzigen Anfrage senden, anstatt jedes Ereignis einzeln zu senden. Diese Funktion ist ab Mai auch für den &lt;a href="https://pubnub.com/docs/serverless/events-and-actions/actions/create-webhook-action" rel="noopener noreferrer"&gt;Aktionstyp Webhook&lt;/a&gt; verfügbar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UuXPtdsa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/batching-e3cf9a2f9881bf32f6c8a0782ac4efff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UuXPtdsa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/batching-e3cf9a2f9881bf32f6c8a0782ac4efff.png" alt="Batching feature" width="726" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  (Un)umhüllend
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Erweiterung&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Sie können nun die Nutzdaten jeder Aktion in einen &lt;a href="https://pubnub.com/docs/serverless/events-and-actions/events#envelope" rel="noopener noreferrer"&gt;Umschlag&lt;/a&gt; verpacken, d.h. wählen, ob das Nutzdatenschema detaillierte Events &amp;amp; Actions JSON-Metadaten enthalten soll. Dies kann hilfreich sein, wenn man Metadaten außerhalb des Payloads verwenden möchte, wie z.B. Informationen über den Kanal, an den der Payload gesendet wurde oder den Listener, der ihn ausgelöst hat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---Op_HGbc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/envelope-a629b278f2f637155ddfe6486c3441b5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---Op_HGbc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/envelope-a629b278f2f637155ddfe6486c3441b5.png" alt="Envelope feature" width="678" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Beleuchten 💡.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Gestapelte Balkendiagramme
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Zusätzlich zu den Balken- und Liniendiagrammen bieten Illuminate Dashboards jetzt einen neuen Diagrammtyp &lt;a href="https://pubnub.com/docs/illuminate/dashboards/basics#settings" rel="noopener noreferrer"&gt;mit gestapelten Balken&lt;/a&gt;, der die Lesbarkeit von Daten verbessert, wenn viele Dimensionen und Werte in einem einzigen Diagramm dargestellt werden.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zem7lnII--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/stacked-bar-chart-1c8ca3660f7fcba4c54d4e6b0c60c757.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zem7lnII--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/stacked-bar-chart-1c8ca3660f7fcba4c54d4e6b0c60c757.png" alt="Stacked bar chart" width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Variablen
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Erweiterung&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Wenn Sie in Decisions Aktionen erstellen (die angeben, was Sie mit den gesammelten Metriken tun möchten), können Sie in den Aktionskonfigurationstabellen &lt;a href="https://pubnub.com/docs/illuminate/decisions/basics#decision-structure" rel="noopener noreferrer"&gt;Variablen&lt;/a&gt; hinzufügen, um zu steuern und dynamisch zu ändern, worauf sie sich beziehen. Sie können Variablen flexibler verwenden - entweder durch Bezugnahme auf die vordefinierten Bedingungen (geben Sie &lt;code&gt;${)&lt;/code&gt; ein und wählen Sie aus der Liste aus) oder indem Sie neue Variablen&lt;code&gt;(${variable}&lt;/code&gt;) einrichten. Variablen sind jetzt für die meisten Aktionsfelder verfügbar, nicht nur in der &lt;strong&gt;Nutzlast&lt;/strong&gt; oder dem &lt;strong&gt;Body&lt;/strong&gt; von Aktionen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1MD1SbGJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/variables-7d466ce2dfd4f14a521e2257ab92c582.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1MD1SbGJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/variables-7d466ce2dfd4f14a521e2257ab92c582.png" alt="Variables" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Verbesserte Datenzuordnungsfelder
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Verbesserung&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Wenn Sie ein Business-Objekt erstellen und Kennzahlen (welche Daten Sie verfolgen wollen) oder Dimensionen (um die zu verfolgenden Daten zu segmentieren) definieren, müssen Sie die Feldnamen den tatsächlichen Feldern in Ihrer Payload zuordnen, damit Illuminate weiß, wo diese Daten gesucht werden sollen. Bislang mussten Sie die genaue Zuordnung der einzelnen Felder in der Nutzlast manuell eingeben. Ab Mai bietet Illuminate benutzerfreundlichere &lt;a href="https://pubnub.com/docs/illuminate/business-objects/basics#data-mapping" rel="noopener noreferrer"&gt;Dropdown-Menüs&lt;/a&gt;, um den genauen Speicherort der Veröffentlichungs- und App-Kontextdaten zu ermitteln.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ml0E_Zqm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/json-menu-5f7606df253bb033f38a900b97f66626.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ml0E_Zqm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pubnub.com/assets/images/json-menu-5f7606df253bb033f38a900b97f66626.png" alt="JSON menu" width="774" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sonstiges 🌟.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Neue Suche und KI-Assistent
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Typ&lt;/strong&gt;: Neue Funktion&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;: Zu guter Letzt haben wir die Algolia-Suche in unseren Dokumenten gegen die neue kombinierte Suche und den KI-Assistenten ausgetauscht, um das PubNub-Lernabenteuer noch genauer und interaktiver zu gestalten.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kWNcuv_i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://pubnub.com/assets/images/search-88e1601c53cfce296c5b54947b3b32f5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kWNcuv_i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://pubnub.com/assets/images/search-88e1601c53cfce296c5b54947b3b32f5.gif" alt="Search and AI Assistant" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Es ist an der Zeit, Ihr Coding-Spiel zu verbessern und sich mit unserem neuen KI-Assistenten und der Suchfunktion anzufreunden. Wir werden sie auf der Grundlage deines Feedbacks verfeinern. Sollte also etwas fehlen, werden wir es auf jeden Fall aktualisieren. Viel Spaß beim Programmieren! 🚀&lt;/p&gt;

</description>
      <category>pubnub</category>
      <category>documentation</category>
      <category>releases</category>
      <category>releasenotes</category>
    </item>
    <item>
      <title>Überblick über Daten-Streaming-Technologien</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Mon, 08 Jul 2024 09:57:09 +0000</pubDate>
      <link>https://forem.com/pubnub-de/uberblick-uber-daten-streaming-technologien-1kla</link>
      <guid>https://forem.com/pubnub-de/uberblick-uber-daten-streaming-technologien-1kla</guid>
      <description>&lt;p&gt;Die Fähigkeit, große Datenmengen (Big Data) in Echtzeit zu verarbeiten, ist für viele Unternehmen von entscheidender Bedeutung geworden, und hier kommen die &lt;a href="https://www.pubnub.com/solutions/data-streaming/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Daten-Streaming-Technologien&lt;/a&gt; ins Spiel. Diese Technologien ermöglichen es, große Datenmengen in Echtzeit oder nahezu in Echtzeit zu verarbeiten, während sie generiert werden, so dass Unternehmen unmittelbare Erkenntnisse gewinnen und zeitkritische datengestützte Entscheidungen treffen können.&lt;/p&gt;

&lt;p&gt;Im Mittelpunkt dieser Technologien steht das Konzept der Datenströme, die auch als Ereignisströme bezeichnet werden. Bei den Datenströmen handelt es sich um Sequenzen, die von verschiedenen Quellen erzeugt werden, z. B. von Social-Media-Feeds, Internet-of-Things-Geräten (IoT), Protokolldateien, wissenschaftlichen Datensätzen und mehr. Diese Datenströme werden dann von Daten-Streaming-Technologien aufgenommen und verarbeitet.&lt;/p&gt;

&lt;p&gt;Ein weiterer wichtiger Aspekt ist die Skalierbarkeit von Datenströmen. Wenn das Datenvolumen wächst, können die Technologien skaliert werden, um die erhöhte Last zu bewältigen und sicherzustellen, dass Unternehmen Echtzeitanalysen durchführen können. Dies bedeutet, dass Unternehmen ihre Daten analysieren können, sobald sie generiert werden, und so in der Lage sind, schnelle Entscheidungen zu treffen, was besonders in Szenarien nützlich ist, in denen das Timing wichtig ist, z. B. bei der Betrugserkennung oder der Optimierung der Kundenerfahrung.&lt;/p&gt;

&lt;p&gt;Daten-Streaming-Technologien unterstützen verschiedene Formate, von strukturierten Daten wie SQL-Datenbanken bis hin zu unstrukturierten Daten wie Live-Events oder Social-Media-Feeds; dies stellt sicher, dass Unternehmen alle Arten von Daten verarbeiten und analysieren können, unabhängig von ihrer Quelle oder ihrem Format. Es ist wichtig zu beachten, dass diese Technologien zwar viele Vorteile bieten, aber auch Herausforderungen mit sich bringen. So erfordern sie zum Beispiel ausgefeilte datentechnische Fähigkeiten für die Implementierung und Verwaltung, geringe Latenzzeiten und einen hohen Durchsatz, insbesondere bei der Verarbeitung großer Datenmengen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grundlegende Konzepte der Daten-Streaming-Technologien
&lt;/h2&gt;

&lt;p&gt;Daten-Streaming-Technologien beruhen auf mehreren grundlegenden Konzepten. Das Verständnis dieser Konzepte ist entscheidend, um die Möglichkeiten der Echtzeit-Datenverarbeitung voll auszuschöpfen:&lt;/p&gt;

&lt;h3&gt;
  
  
  Datenströme
&lt;/h3&gt;

&lt;p&gt;Datenströme sind kontinuierliche Datenflüsse aus verschiedenen Quellen, wie IoT-Geräten, Protokolldateien, Börsen usw. Diese Datenquellen erzeugen Daten mit hoher Geschwindigkeit, oft in Echtzeit oder nahezu in Echtzeit, und die erzeugten Daten sind in der Regel zeitkritisch, d. h. ihre Relevanz nimmt mit der Zeit ab.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stream-Verarbeitung
&lt;/h3&gt;

&lt;p&gt;Stream Processing ist die Echtzeitverarbeitung von Datenströmen. Im Gegensatz zur Stapelverarbeitung, bei der die Daten in geplanten Intervallen verarbeitet werden, werden bei der Stream-Verarbeitung die Daten verarbeitet, sobald sie ankommen. Dies ermöglicht eine geringe Latenzzeit, die für zeitkritische Anwendungen wie die Verfolgung von Benutzerpositionen oder Rohstoffpreisen und die darauf basierende Entscheidungsfindung unerlässlich ist.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stapelverarbeitung vs. Stream-Verarbeitung
&lt;/h3&gt;

&lt;p&gt;Stapelverarbeitung und Stream Processing sind zwei unterschiedliche Ansätze für die Datenverarbeitung. Die Stapelverarbeitung verarbeitet große Datenmengen auf einmal und in geplanten Intervallen und eignet sich für nicht zeitabhängige Datenanalyseaufgaben. Die Stream-Verarbeitung hingegen verarbeitet Daten, sobald sie generiert werden, und liefert Erkenntnisse in Echtzeit.&lt;/p&gt;

&lt;p&gt;Im Zusammenhang mit der Verarbeitung von Datenströmen wird auch der Begriff "Micro-Batch" verwendet. Dieser Ansatz liegt zwischen der Batch- und der Stream-Verarbeitung, wenn sehr frische Daten benötigt werden, aber nicht unbedingt in Echtzeit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architektur des Datenstroms
&lt;/h2&gt;

&lt;p&gt;Die typische Architektur von Daten-Streaming-Technologien umfasst Datenquellen, Dateneingabesysteme, Stream-Verarbeitungssysteme und Datenspeichersysteme.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Datenquellen erzeugen Datenströme.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Datenaufnahmesysteme wie Apache Kafka oder Amazon Kinesis erfassen diese Datenströme zur Verarbeitung.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ein Stream-Prozessor, wie z. B. Apache Flink oder Apache Spark Streaming, verarbeitet die aufgenommenen Daten in Echtzeit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die verarbeiteten Daten werden dann in Data Lakes oder Data Warehouses für weitere Analysen oder Visualisierungs-Dashboards gespeichert.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die Daten können mit Systemen wie der &lt;a href="https://www.pubnub.com/developers/kafka/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub Kafka Bridge&lt;/a&gt; direkt an den Rand Ihres Netzwerks gestreamt werden.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Die Daten fließen in Datenpipelines durch die Architektur von der Quelle zum Ziel. Im Wesentlichen stellen Datenpipelines den Weg der Daten von ihrem Ursprungsort über die Aufnahme, Verarbeitung und schließlich die Speicherung oder Visualisierung dar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Datenkonsistenz
&lt;/h3&gt;

&lt;p&gt;Die Datenkonsistenz ist ein wichtiges Anliegen beim Daten-Streaming. Daten-Streaming-Technologien verwenden verschiedene Techniken wie Ereignisreihenfolge, Exact-once-Verarbeitung und Fehlertoleranz, um die Konsistenz zu gewährleisten. Diese Techniken stellen sicher, dass die Daten in der richtigen Reihenfolge verarbeitet werden, dass keine Daten verloren gehen oder mehrfach verarbeitet werden und dass das System sich von Fehlern ohne Datenverlust erholen kann.&lt;/p&gt;

&lt;p&gt;PubNub bietet beispielsweise mehrere Möglichkeiten, &lt;a href="https://www.pubnub.com/message-delivery-guarantee/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;die Zustellung von Nachrichten zu garantieren&lt;/a&gt;, wie Lesebestätigungen, Nachrichtenreihenfolge und Warteschlangen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Werkzeuge für Daten-Streaming-Technologien
&lt;/h3&gt;

&lt;p&gt;Es gibt verschiedene Open-Source- und kommerzielle Tools für die Implementierung von Daten-Streaming-Technologien. Dazu gehören Apache Kafka, Apache Flink, AWS Kinesis und Microsoft Azure Stream Analytics. Jedes Tool hat seine eigenen Stärken und Anwendungsfälle, und die Wahl des Tools hängt von den spezifischen Anforderungen der Daten-Streaming-Anwendung ab.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nächste Schritte mit PubNub Data Streaming
&lt;/h2&gt;

&lt;p&gt;Nachdem Sie die grundlegenden Konzepte und die Architektur von Daten-Streaming-Technologien verstanden haben, ist der nächste Schritt die Implementierung dieser Technologien in Ihre eigenen Systeme. PubNub bietet eine robuste und skalierbare Echtzeit-Datenstreaming-Plattform, die sich leicht in Ihre bestehende Architektur integrieren lässt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YVmNlsZK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/4821PXPFoWt6Lxhru8nTx7/da5aee77c5ff80c7f351907b22b5fa4a/twitter_short.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YVmNlsZK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/4821PXPFoWt6Lxhru8nTx7/da5aee77c5ff80c7f351907b22b5fa4a/twitter_short.png" title="Data Streaming Demo image" alt="Image showing real-time data streaming" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hier sind die Schritte, um mit PubNub Data Streaming zu beginnen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Demos erkunden&lt;/strong&gt;: PubNub stellt eine &lt;a href="https://www.pubnub.com/demos/real-time-data-streaming/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Echtzeit-Daten-Streaming-Demo&lt;/a&gt; zur Verfügung, damit Sie verstehen, wie unsere Plattform funktioniert. Diese Demo eignet sich für eine Vielzahl von Anwendungsfällen, von Chat-Apps bis zur Steuerung von IoT-Geräten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Verstehen Sie die Grundlagen&lt;/strong&gt;: PubNub stellt ein umfassendes Glossar zur Verfügung, in dem die wichtigsten Begriffe und Konzepte beschrieben werden, einschließlich eines Eintrags zum &lt;a href="https://www.pubnub.com/learn/glossary/data-streaming/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Daten-Streaming&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Verstehen Sie PubNub Illuminate&lt;/strong&gt;: Mit &lt;a href="https://www.pubnub.com/products/illuminate/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub Illuminate&lt;/a&gt; können Sie Monetarisierungsstrategien im Handumdrehen anpassen, das Nutzerverhalten mit Anreizen verknüpfen, jede Aktion mit benutzerdefinierten Echtzeit-Aggregat- und Gerätemetriken verfolgen und die Ergebnisse sofort sehen - und das alles, ohne Ihr Entwicklerteam zu belasten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Anmeldung&lt;/strong&gt;: Melden Sie sich für ein PubNub-Konto an. Sie können dies auf der &lt;a href="https://admin.pubnub.com/#/register?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Registrierungsseite&lt;/a&gt; tun. Die kostenlose Version Ihres PubNub-Kontos verfügt über großzügige Limits und erfordert keine Kreditkarte, bis Sie zum Upgrade bereit sind.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Beginnen Sie zu bauen&lt;/strong&gt;: Sobald Sie die Grundlagen beherrschen, können Sie Ihre eigenen Daten-Streaming-Anwendungen erstellen. PubNub bietet eine Vielzahl von Tutorials, die Sie durch die Erstellung verschiedener Anwendungstypen führen, darunter auch ein &lt;a href="https://www.pubnub.com/tutorials/real-time-data-streaming/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Tutorial zur Erstellung einer Echtzeit-Datenstreaming-Anwendung&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Erkunden Sie APIs&lt;/strong&gt;: PubNub bietet eine breite Palette von APIs und SDKs, die Sie für die Erstellung Ihrer Anwendungen nutzen können. Weitere Informationen finden Sie auf unserer &lt;a href="https://www.pubnub.com/docs/sdks?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;SDK-Dokumentationsseite&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Die*&lt;em&gt;Preisgestaltung verstehen&lt;/em&gt;*: Bevor Sie mit der Entwicklung beginnen, sollten Sie wissen, wie viel das Ganze kosten wird. Weitere Informationen über die Preise von PubNub finden Sie auf der &lt;a href="https://www.pubnub.com/pricing/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Preisseite&lt;/a&gt; des Unternehmens.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Tieferer Einblick in die Anwendungsfälle für Daten-Streaming-Technologien
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Datenanalyse in Echtzeit
&lt;/h3&gt;

&lt;p&gt;Einer der wichtigsten Anwendungsfälle für Daten-Streaming-Technologien ist die Datenanalyse in Echtzeit. Durch die Verarbeitung und Analyse von Datenströmen in Echtzeit können Unternehmen sofortige Einblicke in ihre Abläufe gewinnen und schnelle, fundierte Entscheidungen treffen. Dies kann besonders in Branchen wie dem Finanzwesen nützlich sein, wo Echtzeit-Datenanalysen für die Erkennung von Betrug, die Analyse von Markttrends und vieles mehr eingesetzt werden können.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/products/illuminate/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub Illuminate&lt;/a&gt; ist ein Beispiel für eine Echtzeit-Analyseplattform. PubNub Illuminate ist jedoch mehr als nur eine Plattform für die Datenverwaltung, sondern ermöglicht es Ihnen auch, Bedingungen auf der Grundlage Ihrer Datenmetriken zu definieren, die, wenn sie ausgelöst werden, dynamische Aktionen auf der Grundlage dieser Daten durchführen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Internet der Dinge (IoT)
&lt;/h3&gt;

&lt;p&gt;Eine weitere wichtige Anwendung von Datenstreaming-Technologien ist das Internet der Dinge (IoT), wo Geräte Datenströme erzeugen, die in Echtzeit verarbeitet werden können, um wertvolle Erkenntnisse zu gewinnen. Die Überwachung der Leistung von Industrieanlagen beispielsweise ermöglicht es Unternehmen, Probleme zu erkennen und zu beheben, bevor sie zu einem Ausfall der Anlagen führen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Analyse sozialer Medien
&lt;/h3&gt;

&lt;p&gt;Social-Media-Plattformen erzeugen jede Sekunde riesige Datenmengen, die mit Hilfe von Data-Streaming-Technologien in Echtzeit verarbeitet werden können. So können Unternehmen Trends überwachen, die Stimmung der Kunden verfolgen und sofort auf Kundenfeedback reagieren.&lt;/p&gt;

&lt;h3&gt;
  
  
  Elektronischer Handel
&lt;/h3&gt;

&lt;p&gt;In der E-Commerce-Branche können Data-Streaming-Technologien das Kundenverhalten in Echtzeit verfolgen, so dass Unternehmen personalisierte Empfehlungen geben, das Kundenerlebnis verbessern und den Umsatz steigern können.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zukünftige Trends bei Daten-Streaming-Technologien
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Integration mit maschinellem Lernen und KI
&lt;/h3&gt;

&lt;p&gt;Einer der wichtigsten Trends bei Daten-Streaming-Technologien ist die Integration von maschinellem Lernen und generativer KI. Modelle für maschinelles Lernen können mit den Echtzeitdaten versorgt werden, die für genaue und rechtzeitige Vorhersagen erforderlich sind. Dies kann insbesondere für die vorausschauende Wartung von Nutzen sein, bei der Modelle des maschinellen Lernens auf der Grundlage von Echtzeitdaten Ausfälle von Bauteilen vorhersagen können - zum Beispiel können die Entladezyklen eines mobilen Geräts genutzt werden, um die voraussichtliche Lebensdauer des Akkus abzuschätzen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vermehrter Einsatz von Open-Source-Frameworks
&lt;/h3&gt;

&lt;p&gt;Open-Source-Frameworks wie Apache Kafka, Apache Flink und Spark Streaming sind zu beliebten Tools für die Implementierung von Daten-Streaming-Technologien geworden. Diese Frameworks bieten robuste Funktionen für die Verarbeitung großer Datenmengen in Echtzeit, und ihr Open-Source-Charakter macht sie in hohem Maße anpassungsfähig und für verschiedene Anwendungsfälle nutzbar. Wir erwarten, dass diese und andere Open-Source-Frameworks in Zukunft verstärkt zum Einsatz kommen werden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stärkere Betonung von Datensicherheit und Datenschutz
&lt;/h3&gt;

&lt;p&gt;Da Unternehmen bei der Verarbeitung sensibler Daten zunehmend auf Data-Streaming-Technologien zurückgreifen, werden Datensicherheit und Datenschutz stärker in den Vordergrund rücken. Dazu gehört die Implementierung robuster Sicherheitsmaßnahmen, um Datenströme vor unbefugtem Zugriff zu schützen und die Einhaltung von Datenschutzbestimmungen zu gewährleisten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fortgeschrittenere Data-Engineering-Techniken
&lt;/h3&gt;

&lt;p&gt;Wir erwarten, dass mit zunehmender Vertrautheit der Ingenieure mit den Technologien auch fortschrittlichere Data-Engineering-Techniken zum Einsatz kommen werden, einschließlich ausgefeilterer Algorithmen für die Verarbeitung von Datenströmen, die Optimierung von Datenpipelines und die Gewährleistung der Datenkonsistenz.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fazit
&lt;/h2&gt;

&lt;p&gt;Die Zukunft der Daten-Streaming-Technologien sieht rosig aus. Indem sie den Unternehmen bessere betriebliche Einblicke in Echtzeit bieten, können sie sofortige Maßnahmen ergreifen, ohne sich auf historische Daten verlassen zu müssen, und so die Kundenzufriedenheit, Effizienz und Rentabilität steigern. Unabhängig von Ihrer Branche, ob Kundenmanagement, E-Commerce, IoT oder Social-Media-Analyse, haben Data-Streaming-Technologien das Potenzial, die Arbeitsweise von Unternehmen zu verändern.&lt;/p&gt;

&lt;p&gt;PubNub kann Ihnen dabei helfen, Ihr Unternehmen mit Streaming-Daten zu verändern. Wenden Sie sich an das DevRel-Team unter &lt;a href="//mailto:devrel@pubnub.com"&gt;devrel@pubnub.com&lt;/a&gt; oder an unser &lt;a href="https://support.pubnub.com/hc/en-us?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Support-Team&lt;/a&gt;, wenn Sie Hilfe zu einem beliebigen Aspekt Ihrer PubNub-Entwicklung benötigen.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wie kann PubNub Ihnen helfen?
&lt;/h1&gt;

&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/blog/data-streaming-technologies-overview/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub.com&lt;/a&gt; veröffentlicht.&lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Sehen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/signup/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Account&lt;/a&gt; an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginnen Sie
&lt;/h2&gt;

&lt;p&gt;Mit den &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Dokumenten&lt;/a&gt; können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;SDK&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Chat-Moderation mit OpenAI</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Wed, 03 Jul 2024 15:37:11 +0000</pubDate>
      <link>https://forem.com/pubnub-de/chat-moderation-mit-openai-jho</link>
      <guid>https://forem.com/pubnub-de/chat-moderation-mit-openai-jho</guid>
      <description>&lt;p&gt;Jede Anwendung, die einen &lt;a href="https://www.pubnub.com/solutions/chat/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;In-App-Chat&lt;/a&gt; enthält, benötigt eine Möglichkeit, die Nachrichten, die Nutzer austauschen können, zu regulieren und zu moderieren. Da es nicht möglich ist, alle unangemessenen Inhalte durch menschliche Moderatoren zu moderieren, muss das Moderationssystem automatisch sein. Da Nutzer häufig versuchen werden, die Moderation zu umgehen, sind maschinelles Lernen, generative KI und große Sprachmodelle (LLMs) [und GPT-Modelle wie GPT-3 und GPT-4] beliebte Methoden zur Moderation von Inhalten.&lt;/p&gt;

&lt;p&gt;Moderation ist ein komplexes Thema, und PubNub bietet verschiedene Lösungen, um alle Anwendungsfälle unserer Entwickler zu erfüllen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.pubnub.com/docs/serverless/functions/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Funktionen&lt;/a&gt; können Nachrichten abfangen und verändern, bevor sie ihr Ziel erreichen. Sie können innerhalb einer Funktion benutzerdefinierte Logik anwenden, einschließlich des Aufrufs einer externen REST-API, so dass Sie jeden externen Dienst für die Nachrichtenmoderation nutzen können. Dieser Ansatz wird in diesem Artikel für die Integration mit OpenAI verwendet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PubNub-Funktionen bieten &lt;a href="https://www.pubnub.com/integrations/?page=1&amp;amp;sortBy=Most%20recent&amp;amp;utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;benutzerdefinierte Integrationen&lt;/a&gt;, die Inhaltsmoderation und Stimmungsanalyse unterstützen, darunter &lt;a href="https://www.pubnub.com/integrations/lasso-moderation/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Lasso Moderation&lt;/a&gt;, &lt;a href="https://www.pubnub.com/integrations/tisane-labs-nlp/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Tisane&lt;/a&gt;, &lt;a href="https://www.pubnub.com/integrations/chat-message-profanity-filter/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;ein RegEx-basierter Profanitätsfilter&lt;/a&gt;, &lt;a href="https://www.pubnub.com/integrations/lexalytics/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Lexalytics&lt;/a&gt; und &lt;a href="https://www.pubnub.com/integrations/communitysift/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Community Sift&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Der BizOps Workspace von PubNub kann &lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Konversationen überwachen und moderieren&lt;/a&gt;, einschließlich der Möglichkeit, Nachrichten zu bearbeiten und zu löschen.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Der Open AI Moderationsendpunkt
&lt;/h2&gt;

&lt;p&gt;Dieser Artikel befasst sich mit &lt;a href="https://platform.openai.com/docs/guides/moderation/overview"&gt;der Moderation API von OpenAI&lt;/a&gt;, einer REST-API, die mithilfe von künstlicher Intelligenz (KI) feststellt, ob der bereitgestellte Text potenziell schädliche Begriffe enthält. Die API soll es Entwicklern ermöglichen, schädliche Inhalte zu filtern oder zu entfernen, und wird zum Zeitpunkt der Erstellung dieses Artikels &lt;strong&gt;kostenlos&lt;/strong&gt; zur Verfügung gestellt, unterstützt jedoch nur Englisch.&lt;/p&gt;

&lt;p&gt;Das Modell hinter der Moderations-API kategorisiert den bereitgestellten Text wie folgt (aus der &lt;a href="https://platform.openai.com/docs/guides/moderation/overview"&gt;API-Dokumentation&lt;/a&gt;):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hass:&lt;/strong&gt; Inhalte, die Hass aufgrund von Rasse, Geschlecht, ethnischer Zugehörigkeit, Religion, Nationalität, sexueller Orientierung, Behinderungsstatus oder Kaste ausdrücken, dazu auffordern oder fördern. Hassvolle Inhalte, die sich gegen nicht geschützte Gruppen richten (z. B. Schachspieler), gelten als Belästigung.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hass / Bedrohung:&lt;/strong&gt; Hassvolle Inhalte, die auch Gewalt oder ernsthaften Schaden gegenüber der Zielgruppe aufgrund von Rasse, Geschlecht, ethnischer Herkunft, Religion, Nationalität, sexueller Orientierung, Behinderung oder Kaste beinhalten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Belästigung:&lt;/strong&gt; Inhalte, die eine belästigende Sprache gegenüber einer beliebigen Zielperson ausdrücken, dazu auffordern oder fördern.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Belästigung/Bedrohung:&lt;/strong&gt; Belästigende Inhalte, die auch Gewalt oder ernsthaften Schaden für eine beliebige Zielgruppe beinhalten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selbstbeschädigung&lt;/strong&gt;: Inhalte, die zu selbstbeschädigenden Handlungen wie Selbstmord, Schneiden und Essstörungen auffordern, ermutigen oder diese darstellen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selbstbeschädigung/Absicht:&lt;/strong&gt; Inhalte, in denen der Sprecher zum Ausdruck bringt, dass er selbstschädigende Handlungen wie Selbstmord, Schneiden und Essstörungen vornimmt oder vorhat, diese vorzunehmen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Selbstbeschädigung/Anweisungen:&lt;/strong&gt; Inhalte, die zu selbstschädigenden Handlungen wie Selbstmord, Schneiden und Essstörungen ermutigen oder Anweisungen oder Ratschläge geben, wie man solche Handlungen vornimmt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sexuell:&lt;/strong&gt; Inhalte, die sexuelle Erregung hervorrufen sollen, wie z. B. die Beschreibung sexueller Aktivitäten, oder die für sexuelle Dienstleistungen werben (ausgenommen Sexualerziehung und Wellness).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sexuell / Minderjährige:&lt;/strong&gt; Sexuelle Inhalte, die eine Person unter 18 Jahren zeigen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gewalttätigkeit:&lt;/strong&gt; Inhalte, in denen Tod, Gewalt oder körperliche Verletzungen dargestellt werden.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gewalt/Grafik:&lt;/strong&gt; Inhalte, die Tod, Gewalt oder Körperverletzung in grafischen Details darstellen.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Die Ergebnisse werden in einer JSON-Struktur wie folgt bereitgestellt (wiederum aus der API-Dokumentation entnommen):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;modr-XXXXX&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;model&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text-moderation-007&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;results&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;flagged&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;categories&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sexual&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hate&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;harassment&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;self-harm&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sexual/minors&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hate/threatening&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;violence/graphic&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;self-harm/intent&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;self-harm/instructions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;harassment/threatening&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;violence&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;category_scores&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;//  Out of scope for this article&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Aufrufen der Open AI Moderation API von PubNub
&lt;/h2&gt;

&lt;p&gt;Die*&lt;em&gt;Integration der Moderations-API in eine beliebige PubNub-Anwendung ist mit Hilfe von PubNub-Funktionen ganz einfach&lt;/em&gt;*, wenn Sie dieser Schritt-für-Schritt-Anleitung folgen:&lt;/p&gt;

&lt;p&gt;Funktionen ermöglichen es Ihnen, Echtzeit-Ereignisse auf der PubNub-Plattform zu erfassen, z. B. gesendete und empfangene Nachrichten; Sie können dann innerhalb dieser Funktionen benutzerdefinierten serverlosen Code schreiben, um Nachrichten nach Bedarf zu ändern, umzuleiten, zu ergänzen oder zu filtern.&lt;/p&gt;

&lt;p&gt;Sie müssen den Ereignistyp "Before Publish or Fire" verwenden; dieser Funktionstyp wird aufgerufen &lt;em&gt;, bevor&lt;/em&gt; die Nachricht zugestellt wird, und muss seine Ausführung beenden, bevor die Nachricht zur Zustellung an die Empfänger freigegeben wird. Die &lt;a href="https://www.pubnub.com/docs/serverless/functions/overview#what-function-type-to-use?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Dokumentation&lt;/a&gt; bietet weitere Hintergründe und Details, aber zusammenfassend lässt sich sagen: "Before Publish or Fire" ist ein synchroner Aufruf, der &lt;em&gt;eine Nachricht oder ihre Nutzlast ändern&lt;/em&gt; kann &lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Erstellen Sie die PubNub-Funktion
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Loggen Sie sich in das &lt;a href="https://admin.pubnub.com?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Administrationsportal&lt;/a&gt; ein und wählen Sie die Anwendung und das Keyset für die App aus, die Sie moderieren möchten.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wählen Sie "Funktionen", die Sie unter dem Reiter "Erstellen" finden.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wählen Sie '+ CREATE NEW MODULE' und geben Sie dem Modul einen Namen und eine Beschreibung&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wählen Sie "+ NEUE FUNKTION ERSTELLEN" und geben Sie der Funktion einen Namen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wählen Sie für den Ereignistyp "Vor Veröffentlichung oder Feuer".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Geben Sie für den Kanalnamen &lt;strong&gt;*&lt;/strong&gt; ein (in dieser Demo wird &lt;strong&gt;*&lt;/strong&gt; verwendet, aber Ihre Anwendung kann hier nur die Kanäle angeben, die Sie moderieren möchten)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nachdem Sie die PubNub-Funktion erstellt haben, müssen Sie Ihren Open AI API-Schlüssel als Geheimnis angeben.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Wählen Sie 'MY SECRETS' und erstellen Sie einen neuen Schlüssel mit dem Namen 'OPENAI_API_KEY'.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://platform.openai.com/account/api-keys"&gt;Generieren Sie einen Open AI API-Schlüssel&lt;/a&gt; und stellen Sie sicher, dass dieser Schlüssel Zugriff auf die moderate API hat.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Geben Sie den generierten API-Schlüssel an das gerade erstellte PubNub-Funktionsgeheimnis weiter.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Der Körper der PubNub-Funktion sieht wie folgt aus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;xhr&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;xhr&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;vault&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;vault&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;messageText&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;getOpenaiApiKey&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;openAIModeration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messageText&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;aiResponse&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;//  Append the response to the message&lt;/span&gt;
        &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;openAiModeration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;aiResponse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="c1"&gt;//  If the message was harmful, you might also choose to report the message here.&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
      &lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getOpenaiApiKey&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Use cached key&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resolve&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="c1"&gt;// Fetch key from vault&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;vault&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;apikey&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;apikey&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resolve&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;openAIModeration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messageText&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.openai.com/v1/moderations&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;http_options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;method&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;headers&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Content-Type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;application/json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Authorization&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;body&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;input&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;messageText&lt;/span&gt;
    &lt;span class="p"&gt;}),&lt;/span&gt;
    &lt;span class="na"&gt;timeout&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;9500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;retries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;xhr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;http_options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Open AI Timed out&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Funktion selbst ist recht einfach:&lt;/p&gt;

&lt;p&gt;Für jede empfangene Nachricht:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Übergeben Sie sie an die Open AI-Moderationsfunktion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fügen Sie das zurückgegebene Moderationsobjekt als neuen Schlüssel an das Message (JSON) Objekt an.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Speichern Sie Ihre Funktion und stellen Sie sicher, dass Ihr Modul gestartet ist.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Latenzzeit
&lt;/h3&gt;

&lt;p&gt;Die PubNub-Funktion, die Sie soeben erstellt haben, wird jedes Mal synchron ausgeführt, wenn eine Nachricht gesendet wird, und die Nachricht wird erst ausgeliefert, wenn die Funktion fertig ausgeführt ist. Da die Funktion einen Aufruf an eine externe API enthält, hängt die Auslieferungslatenz davon ab, wie schnell der API-Aufruf an Open AI zurückkommt, was außerhalb der Kontrolle von PubNub liegt und ziemlich hoch sein kann.&lt;/p&gt;

&lt;p&gt;Es gibt mehrere Möglichkeiten, die Beeinträchtigung des Benutzererlebnisses abzumildern. Die meisten Implementierungen geben dem Absender eine sofortige Rückmeldung, dass die Nachricht gesendet wurde und verlassen sich dann auf Lesebestätigungen, um anzuzeigen, dass die Nachricht zugestellt (oder gemeldet) wurde.&lt;/p&gt;

&lt;h3&gt;
  
  
  Aktualisieren der Client-Anwendung
&lt;/h3&gt;

&lt;p&gt;Betrachten wir, was erforderlich wäre, um den Moderations-Payload innerhalb Ihrer Anwendung zu handhaben, indem wir die &lt;a href="https://www.pubnub.com/demos/chat/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Chat-Demo&lt;/a&gt; verwenden, die eine React-Anwendung ist, die das &lt;a href="https://www.pubnub.com/docs/chat/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub Chat SDK&lt;/a&gt; verwendet, um die meisten Funktionen einer typischen Chat-Anwendung zu zeigen.&lt;/p&gt;

&lt;p&gt;Richten Sie ein Attribut ein, um zu verfolgen, ob eine potenziell schädliche Nachricht angezeigt werden soll oder nicht:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;showHarmfulMessage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setShowHarmfulMessage&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Und fügen Sie eine Logik hinzu, um eine potenziell schädliche Nachricht standardmäßig nicht anzuzeigen, in diesem Fall in &lt;a href="https://github.com/PubNubDevelopers/Chat-SDK-Demo-Web/blob/90447262583c251c983f04f23ffb23adcbbd6d25/chat-sdk-demo-web/app/chat/ui-components/message.tsx"&gt;message.tsx&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{(&lt;/span&gt;
  &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;openAiModeration&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; 
  &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;openAiModeration&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;flagged&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; 
  &lt;span class="nx"&gt;showHarmfulMessage&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;
&lt;span class="p"&gt;)}&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;showHarmfulMessage&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; 
  &lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;openAiModeration&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;flagged&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; 
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;span&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Message&lt;/span&gt; &lt;span class="nx"&gt;contains&lt;/span&gt; &lt;span class="nx"&gt;potentially&lt;/span&gt; &lt;span class="nx"&gt;harmful&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt; 
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;span&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text-blue-400 cursor-pointer&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 
    &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;setShowHarmfulMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Reveal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/span&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/span&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ygaqd9Nx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/1qmBAFCDiDwwKdp7TLSCaw/516d3b1de50c22784996f1e43a65fdc7/Screenshot_2024-07-01_at_10.59.58.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ygaqd9Nx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/1qmBAFCDiDwwKdp7TLSCaw/516d3b1de50c22784996f1e43a65fdc7/Screenshot_2024-07-01_at_10.59.58.png" title="Chat Moderation with OpenAI - Image 01" alt="Chat Moderation with OpenAI - Image" width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beachten Sie, dass diese Änderungen nicht in der &lt;strong&gt;gehosteten&lt;/strong&gt; Version der &lt;a href="https://www.pubnub.com/demos/chat/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Chat-Demo&lt;/a&gt; enthalten sind, aber die &lt;a href="https://github.com/PubNubDevelopers/Chat-SDK-Demo-Web/blob/main/README.md"&gt;ReadMe enthält vollständige Anweisungen&lt;/a&gt;, um sie selbst zu erstellen und von Ihrem eigenen Keyset aus auszuführen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Einpacken
&lt;/h2&gt;

&lt;p&gt;Und da haben Sie es, eine schnelle und einfache (und kostenlose) Möglichkeit, Ihrer Anwendung mit Open AI sowohl Moderation als auch Sentiment-Analyse hinzuzufügen.&lt;/p&gt;

&lt;p&gt;Um mehr über die Integration von Open AI mit PubNub zu erfahren, schauen Sie sich diese anderen Ressourcen an:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.pubnub.com/blog/openai-gpt-api-integration-with-functions/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;OpenAI GPT API Integration mit Funktionen&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.pubnub.com/blog/build-a-chatbot-with-pubnub-and-chatgpt-openai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Erstellen Sie einen Chatbot mit PubNub und ChatGPT&lt;/a&gt; (Hinzufügen eines Chatbots zu unserem PubNub-Showcase)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.pubnub.com/blog/enhance-geo-app-with-pubnub-and-openai-chatgpt/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Erweitern Sie eine Geo-App mit PubNub &amp;amp; Chat GPT / OpenAI&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wenden Sie sich an das DevRel-Team unter &lt;a href="//mailto:devrel@pubnub.com"&gt;devrel@pubnub.com&lt;/a&gt; oder an unser &lt;a href="https://support.pubnub.com/hc/en-us?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Support-Team&lt;/a&gt;, wenn Sie Hilfe zu einem beliebigen Aspekt Ihrer PubNub-Entwicklung benötigen.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wie kann PubNub Ihnen helfen?
&lt;/h1&gt;

&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/blog/chat-moderation-with-openai/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub.com&lt;/a&gt; veröffentlicht.&lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Sehen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/signup/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Account&lt;/a&gt; an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginnen Sie
&lt;/h2&gt;

&lt;p&gt;Mit den &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Dokumenten&lt;/a&gt; können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;SDK&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>So verwenden Sie Illuminate für die Balance Ihrer Spiele</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Wed, 03 Jul 2024 06:51:05 +0000</pubDate>
      <link>https://forem.com/pubnub-de/so-verwenden-sie-illuminate-fur-die-balance-ihrer-spiele-19oj</link>
      <guid>https://forem.com/pubnub-de/so-verwenden-sie-illuminate-fur-die-balance-ihrer-spiele-19oj</guid>
      <description>&lt;p&gt;Die neueste Produktversion von PubNub, Illuminate, ist ein skalierbares Entscheidungsfindungstool, das wir entwickelt haben, um Spieleentwicklern, Produktmanagern und Projektmanagern bei der Entwicklung, Iteration und beim Experimentieren innerhalb der PubNub-Plattform zu helfen.&lt;/p&gt;

&lt;p&gt;Illuminate wurde von Grund auf mit einer großartigen Benutzeroberfläche entwickelt und hilft Ihnen, Entscheidungen zu treffen, um das Spielerlebnis zu verbessern und die Monetarisierung in Echtzeit zu beschleunigen.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Was also ist Game Balancing und wie kann man es in Echtzeit nutzen?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Die Spielbalance ist ein Teilbereich des Spieldesigns, der das Gameplay und die Benutzererfahrung verbessert, indem er Schwierigkeit und Fairness ausbalanciert. Die Spielbalance besteht aus der Anpassung von Belohnungen, Herausforderungen und/oder Elementen eines Spiels, um das gewünschte Spielerlebnis zu schaffen.&lt;/p&gt;

&lt;p&gt;Unter Spielbalance versteht man im Allgemeinen die Einführung von Fairness für die Spieler. Dies beinhaltet;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Anpassen der Schwierigkeit,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Änderung der Gewinn-/Verlustbedingungen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Spielzustände&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wirtschaftliches Gleichgewicht&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Weitere Informationen zum Spielbalancing finden Sie auf &lt;a href="https://en.wikipedia.org/wiki/Game_balance"&gt;Wikipedia&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Der Einsatz von Spielbalance in Echtzeit kann dazu beitragen, die Spieler bei der Stange zu halten, neuen Spielern das Gefühl zu geben, willkommen zu sein, und möglicherweise das Gameplay zu monetarisieren.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Wie kann Illuminate Ihnen helfen, Ihre Spieler bei der Stange zu halten?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Wie bereits erwähnt, ist Illuminate ein Werkzeug zur Entscheidungsfindung in Echtzeit. Um unsere Spieler bei der Stange zu halten, werden wir uns auf neue Spieler konzentrieren, die neu im Spiel sind und möglicherweise etwas Hilfe brauchen, um sich an die Spielweise zu gewöhnen.&lt;/p&gt;

&lt;p&gt;In diesem Beispiel habe ich eine altmodische Kopie von Asteroids gebaut, die in JavaScript geschrieben ist und vollständig auf PubNub-Funktionen gehostet wird. Weitere Informationen über PubNub-Funktionen finden Sie unter &lt;a href="https://www.pubnub.com/docs/serverless/functions/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;https://www.pubnub.com/docs/serverless/functions/overview.&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Zunächst zur Einführung in die Szene.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Stellen Sie sich vor, ein neuer Spieler tritt Ihrem Spiel bei und fängt an zu spielen, er verliert und beginnt sich zu langweilen, weil es keine Fortschritte gibt.&lt;/p&gt;

&lt;p&gt;Über eine Veröffentlichung können wir eine Nachricht aus dem Spiel an PubNub senden, die Illuminate über den Fortschritt und den Punktestand des Spielers informiert. Illuminate trifft einige Entscheidungen auf der Grundlage vordefinierter Metriken und sendet dann eine Nachricht an den Spieler zurück, in der ihm die Möglichkeit geboten wird, drei Leben zu kaufen oder eine kostenpflichtige Werbeaktion im Austausch für zwei Leben anzusehen.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Schauen wir uns die Bildschirme an.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dvjKtS3o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5ELOgmKIhdlJDGcsRfeLRr/ea1c9bd24814904ca26d9add6fd150ce/image2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dvjKtS3o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5ELOgmKIhdlJDGcsRfeLRr/ea1c9bd24814904ca26d9add6fd150ce/image2.png" title="Use Illuminate to Balance your Games - Image - 01" alt="Use Illuminate to Balance your Games" width="800" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Das Spiel beginnt ganz normal, aber wie Sie sehen können, bin ich wirklich kein guter Spieler und starb mit nur 70 Punkten.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wa3NuixJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/25ixCXROWywRJGXEfuZ1ww/f674cfdcbe0452c50e9a4006b61407cb/image3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wa3NuixJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/25ixCXROWywRJGXEfuZ1ww/f674cfdcbe0452c50e9a4006b61407cb/image3.png" title="Use Illuminate to Balance your Games - Image - 02" alt="Use Illuminate to Balance your Games" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Um mir zu helfen, weiterzuspielen, hat Illuminate diese Punktzahl erhalten und berechnet, dass ich die Möglichkeit haben sollte, ein paar Leben zu kaufen oder eine Werbung zu sehen, um ein paar Leben zu bekommen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rJbLh6TP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/6JROao8WMMGqV8dfKIj3XV/e584b545d64fc7edde4332e76c3b2d2b/image5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rJbLh6TP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/6JROao8WMMGqV8dfKIj3XV/e584b545d64fc7edde4332e76c3b2d2b/image5.png" title="Use Illuminate to Balance your Games - Image - 03" alt="Use Illuminate to Balance your Games" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ich entschied mich dafür, etwas Geld auszugeben, und konnte so einige Leben kaufen und schnell wieder ins Spiel einsteigen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2wJApHCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5tUDTkcymTnRqZfkLobWly/1e8982bd6b68b3a1e183e8e292f1c809/image4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2wJApHCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5tUDTkcymTnRqZfkLobWly/1e8982bd6b68b3a1e183e8e292f1c809/image4.png" title="Use Illuminate to Balance your Games - Image - 04" alt="Use Illuminate to Balance your Games" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Ein Blick hinter die Kulissen von Illuminate.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Du findest Illuminate in deinem PubNub-Kontoportal - &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;https://admin.pubnub.com/,&lt;/a&gt; unter der Rubrik "Optimieren".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HEU8DB6M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/2N5rjdq2zVsuvvJNcihzEV/e924e81bf6edade34287bfd7308524c5/image7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HEU8DB6M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/2N5rjdq2zVsuvvJNcihzEV/e924e81bf6edade34287bfd7308524c5/image7.png" title="Use Illuminate to Balance your Games - Image - 05" alt="Use Illuminate to Balance your Games" width="291" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Als erstes schauen wir uns unsere Business Objects an. Business Objects sind der Weg, um Daten in Illuminate zu erhalten, sie helfen uns zu definieren, welche Art von Daten wir erfassen müssen und woher sie kommen.&lt;/p&gt;

&lt;p&gt;Sie können definieren, welche Daten Sie verfolgen wollen, indem Sie Kennzahlen hinzufügen und wie Sie diese Daten segmentieren wollen, indem Sie Dimensionen hinzufügen.&lt;/p&gt;

&lt;p&gt;Wenn du Hilfe bei der Einrichtung von Illuminate brauchst, findest du die entsprechenden Dokumente hier: &lt;a href="https://www.pubnub.com/docs/illuminate/basics?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;https://www.pubnub.com/docs/illuminate/basics&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Um ein Spiel auszubalancieren, muss man wissen, was man nachverfolgen will und was man neuen Spielern anbieten will, um sie bei der Stange zu halten.&lt;/p&gt;

&lt;p&gt;Das ist die Stärke von Illuminate: Ohne jegliche Programmierung können wir Variablen hinzufügen, entfernen oder ändern, um das Angebot für verschiedene Spieler zu verfeinern und sogar anzupassen.&lt;/p&gt;

&lt;p&gt;In diesem einfachen Beispiel habe ich mich dafür entschieden, die Punktzahl des Spiels zu messen, aber Sie könnten leicht andere Messgrößen hinzufügen; Beispiele hierfür sind;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ist der Spieler ein Gast, oder hat er ein Konto auf Ihrer Spielplattform&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gesamtlänge des Spiels&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gerätetyp - Web, Handy, TV.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hat der Spieler bei früheren Veranstaltungen oder Spielen bereits etwas von Ihnen gekauft?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Um auf meine Geschäftsziele zurückzukommen, möchte ich Ihnen die Maßnahmen vorstellen, mit denen ich arbeite.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oozHcE3I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5j3WZoN5vgm83pxBmPwqbo/86b0b2ded611de919de4f73b7f061447/image6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oozHcE3I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/5j3WZoN5vgm83pxBmPwqbo/86b0b2ded611de919de4f73b7f061447/image6.png" title="Use Illuminate to Balance your Games - Image - 06" alt="Use Illuminate to Balance your Games" width="800" height="698"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ich fasse das mal zusammen:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maßnahmen:&lt;/strong&gt; Numerische Werte, die man messen oder addieren kann.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dimensionen:&lt;/strong&gt; Qualitative Werte, die zur Segmentierung von Maßnahmen verwendet werden können.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metriken:&lt;/strong&gt; Die Aggregation Ihrer Kennzahlen, segmentiert nach den von Ihnen gewählten Dimensionen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Entscheidungen:&lt;/strong&gt; Eine Sammlung von Bedingungen und Aktionen. Wenn die Bedingungen erfüllt sind, wird die entsprechende Aktion ausgelöst.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dashboards:&lt;/strong&gt; Eine Sammlung von Echtzeit-Diagrammen, die Ihre Messgrößen und Entscheidungen visualisieren.&lt;/p&gt;

&lt;p&gt;In meinem Beispiel ist eine Kennzahl, die ich verwende, dass der Kunde Illuminate um Hilfe bittet, wenn der Punktestand unter 500 Punkten liegt.&lt;/p&gt;

&lt;p&gt;Dies habe ich dann auf eine Entscheidung übertragen: "Wenn ein Spieler weniger als 500 Punkte hat, biete ihm die Möglichkeit an, Leben zu kaufen oder eine Werbung zu sehen".&lt;/p&gt;

&lt;p&gt;Sobald der Spieler auswählt, ob er sich eine Werbung ansehen oder Leben kaufen möchte, wird dies als Metrik zurückgemeldet, die dann auf meinem Dashboard angezeigt wird.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vdC8zk66--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/1s61i2Z2ILWGnj4HUhnvPr/f117994e40465a9c34ae34fea2ad8e76/image1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vdC8zk66--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/1s61i2Z2ILWGnj4HUhnvPr/f117994e40465a9c34ae34fea2ad8e76/image1.png" title="Use Illuminate to Balance your Games - Image - 07" alt="Use Illuminate to Balance your Games" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hier sehen Sie eine vereinfachte Ansicht meines Game-Balancing-Dashboards. Sie können sehen, dass wir verfolgen, welche Spieler weniger als 500 Punkte bekommen haben und welche Spieler sich dafür entschieden haben, für ihre Leben zu bezahlen, anstatt eine Werbung zu sehen.&lt;/p&gt;

&lt;p&gt;Auch hier gibt es viele Möglichkeiten, die Komplexität zu erhöhen;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Würden mehr Spieler für zusätzliche Leben bezahlen, wenn die Leben billig wären?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Würden sie sich eine 30-sekündige oder eine 3-minütige Werbung ansehen?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Vs. der traditionelle Ansatz?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Strategiespiele? Online-Spiele? Es kann ein langwieriger Prozess sein, das Spielerlebnis und die Spielmechanik für alle Spieler in Einklang zu bringen. Vor der Markteinführung sollten Sie die verschiedenen Spielelemente testen, das Einführungs-Tutorial erstellen und auf der Grundlage des Spielerverhaltens für ein progressives Leveldesign sorgen, um sowohl die Spielzeit zu maximieren als auch zu verhindern, dass das Spiel zu leicht ist. Nach der Markteinführung können Sie die Spielerforen überwachen, die Analyse der Spielerbindung und der Spieleraktionen überprüfen und dann Patches veröffentlichen, um etwaige Gleichgewichtsprobleme zu beheben ... und dabei hoffentlich nicht Ihr Spiel zu verschlimmbessern!&lt;/p&gt;

&lt;p&gt;Dies kann ein sehr langer Analyse- und Veröffentlichungszyklus sein, und genau dabei kann Illuminate helfen. Sie können unabhängig von Ihrem Spieltyp Entscheidungen in Echtzeit treffen: Vielleicht haben Sie ein Multiplayer-Spiel wie ein FPS oder ein RPG, ein Einzelspieler-Kampfspiel auf Steam oder eine Kampfarena wie League of Legends. Solange es sich um ein Online-Videospiel handelt, bei dem das Gleichgewicht zwischen den Spielern beeinflusst werden kann, indem man in diesem Moment handelt, kann Illuminate das Spielerlebnis verbessern - ich habe bei der PM nachgefragt, und sie sagen, dass Brett- und Kartenspiele noch nicht auf der Roadmap stehen :(&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Einpacken&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Die Verwendung von PubNub's Illuminate für die Spielbalance ist ein schneller, codefreier Weg, um sofortige Entscheidungsreaktionen und Werkzeuge in Ihre App einzuführen, die Ihr Spielerlebnis verbessern.&lt;/p&gt;

&lt;p&gt;Um mehr darüber zu erfahren, wie du dein erstes Spiel mit Echtzeit-Aktionen erstellst, sieh dir unsere &lt;a href="https://www.pubnub.com/products/Illuminate-gaming/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Illuminate for gaming&lt;/a&gt; Seite und unsere &lt;a href="https://www.pubnub.com/docs/illuminate/basics?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Dokumentation&lt;/a&gt; an. Unser &lt;a href="https://support.pubnub.com/hc/en-us?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Support-Team&lt;/a&gt; kann Ihnen auch mit Richtlinien und Empfehlungen helfen. Hoffentlich sehen wir Sie auf der nächsten GDC-Konferenz, wo wir gerne hören würden, was Sie mit PubNub entwickelt haben!&lt;/p&gt;

&lt;h1&gt;
  
  
  Wie kann PubNub Ihnen helfen?
&lt;/h1&gt;

&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/blog/how-to-use-illuminate-to-balance-your-games/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub.com&lt;/a&gt; veröffentlicht.&lt;/p&gt;

&lt;p&gt;Unsere Plattform unterstützt Entwickler bei der Erstellung, Bereitstellung und Verwaltung von Echtzeit-Interaktivität für Webanwendungen, mobile Anwendungen und IoT-Geräte.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Sehen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/signup/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Account&lt;/a&gt; an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginnen Sie
&lt;/h2&gt;

&lt;p&gt;Mit den &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Dokumenten&lt;/a&gt; können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;SDK&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JavaScript Geolocation Tracking mit Google Maps API</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Fri, 31 May 2024 14:40:47 +0000</pubDate>
      <link>https://forem.com/pubnub-de/javascript-geolocation-tracking-mit-google-maps-api-1e41</link>
      <guid>https://forem.com/pubnub-de/javascript-geolocation-tracking-mit-google-maps-api-1e41</guid>
      <description>&lt;p&gt;Hier ist der aktualisierte Blogbeitrag, in den alle Schlüsselwörter nahtlos eingebettet sind.&lt;/p&gt;

&lt;p&gt;Dies ist der Abschluss der vierteiligen Serie über die Erstellung von Live-Echtzeit-Webanwendungen mit Geolokalisierungsfunktionen mithilfe der Google Maps JavaScript API und PubNub. Unser Tutorial führt Sie durch die Benutzererfahrung bei der Erstellung von Flugrouten mit JavaScript und PubNub.&lt;/p&gt;

&lt;p&gt;Ein Beispiel dafür, wie dies alles umgesetzt wird, finden Sie in unserer &lt;a href="https://showcase.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Showcase-Demo&lt;/a&gt; auf der PubNub-Website. Navigieren Sie zur Geolocation-Demo, um zu sehen, wie wir PubNub mit Echtzeit-Tracking einbinden. Den Code hinter der Demo finden Sie auf unserer &lt;a href="https://github.com/PubNubDevelopers/PubNub-Showcase/tree/main/web/geolocation"&gt;Github-Website&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was sind Flugpfade?
&lt;/h2&gt;

&lt;p&gt;Flugpfade, wie sie in diesem &lt;strong&gt;Tutorial&lt;/strong&gt; implementiert sind, beziehen sich auf &lt;strong&gt;Polylinien&lt;/strong&gt;, die das &lt;strong&gt;dynamische Zeichnen von Pfaden durch benutzerdefinierte Punkte&lt;/strong&gt; auf einer Karte ermöglichen, die sich entweder auf Ihrem &lt;strong&gt;mobilen Gerät&lt;/strong&gt; oder im Webbrowser befindet. Sie sind integraler Bestandteil der &lt;strong&gt;HTML5 Geolocation API&lt;/strong&gt; und der &lt;strong&gt;Google Maps API&lt;/strong&gt; zur Verfolgung von Bewegungsmustern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Überblick über das Tutorial
&lt;/h2&gt;

&lt;p&gt;Vergewissern Sie sich, dass Sie die Voraussetzungen aus den &lt;a href="https://www.pubnub.com/blog/javascript-mapping-javascript-tracking/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Teilen eins,&lt;/a&gt; &lt;a href="https://www.pubnub.com/blog/javascript-google-maps-api-map-markers/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;zwei&lt;/a&gt; und &lt;a href="https://www.pubnub.com/blog/javascript-google-maps-api-location-publishing/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;drei&lt;/a&gt; erfüllt haben, , in denen wir &lt;a href="https://www.pubnub.com/blog/javascript-mapping-javascript-tracking/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;unsere JavaScript-Umgebung eingerichtet&lt;/a&gt; und &lt;a href="https://www.pubnub.com/blog/javascript-google-maps-api-map-markers/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Kartenmarkierungen&lt;/a&gt; und &lt;a href="https://www.pubnub.com/blog/javascript-google-maps-api-location-publishing/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Standortverfolgung&lt;/a&gt; behandelt haben.&lt;/p&gt;

&lt;p&gt;Wenn Sie dies getan haben, fahren Sie mit dem nächsten Teil fort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code-Walkthrough
&lt;/h2&gt;

&lt;p&gt;Beginnen wir mit der Definition der &lt;code&gt;let'-Variablen \&lt;/code&gt;map&lt;code&gt;, \&lt;/code&gt;mark&lt;code&gt;und \&lt;/code&gt;lineCoords&lt;code&gt;, um unsere Karten-, Markierungs- und **Polylinien-Koordinatenobjekte** zu speichern. Auf diese Weise können wir sie anpassen, wenn PubNub-Ereignisse eintreffen. Anschließend definieren wir den \&lt;/code&gt;initialize&lt;code&gt;-Callback, der von der [Google Maps JavaScript-API](https://developers.google.com/maps/documentation/javascript/overview) verwendet werden kann, wenn sie bereit zum Laden ist. Stellen Sie sicher, dass Sie \&lt;/code&gt;YOUR_GOOGLE_MAPS_API_KEY` durch Ihren tatsächlichen &lt;strong&gt;API-Schlüssel&lt;/strong&gt; ersetzen.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;js&lt;br&gt;
let map;&lt;br&gt;
let mark;&lt;br&gt;
let lineCoords = [];&lt;br&gt;
let initialize = function() {&lt;br&gt;
  map  = new google.maps.Map(document.getElementById('map-canvas'), {center:{lat:lat,lng:lng},zoom:12});&lt;br&gt;
  mark = new google.maps.Marker({position:{lat:lat, lng:lng}, map:map});&lt;br&gt;
};&lt;br&gt;
window.initialize = initialize;&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Mit dem 'redraw'-Ereignishandler aktualisieren wir nun die neuen Standortinformationen, indem wir die Methode 'getCurrentPosition()' von Geolocation aufrufen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lat/Long
&lt;/h3&gt;

&lt;p&gt;Als Nächstes definieren wir einen "redraw"-Ereignishandler, den wir immer dann aufrufen, wenn wir ein neues Positionsänderungsereignis erhalten. Im ersten Teil der Funktion setzen wir den Breiten- und Längengrad auf die neuen Werte aus der Nachricht. Dann rufen wir die entsprechenden Methoden auf den Objekten Karte, Marker und Polylinie auf, um die Position zu aktualisieren, sie dem Ende der Linie hinzuzufügen und die Karte neu zu zentrieren.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;js&lt;br&gt;
var redraw = function(payload) {&lt;br&gt;
  lat = payload.message.lat;&lt;br&gt;
  lng = payload.message.lng;&lt;br&gt;
  map.setCenter({lat:lat, lng:lng, alt:0});&lt;br&gt;
  mark.setPosition({lat:lat, lng:lng, alt:0});&lt;br&gt;
  lineCoords.push(new google.maps.LatLng(lat, lng));&lt;br&gt;
  var lineCoordinatesPath = new google.maps.Polyline({&lt;br&gt;
    path: lineCoords,&lt;br&gt;
    geodesic: true,&lt;br&gt;
    strokeColor: '#2E10FF'&lt;br&gt;
  });&lt;br&gt;
  lineCoordinatesPath.setMap(map);&lt;br&gt;
};&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub initialisieren
&lt;/h2&gt;

&lt;p&gt;Nachdem wir unsere Callbacks definiert haben, initialisieren wir die PubNub-Echtzeitdaten-Streaming-Funktionalität, die auf &lt;strong&gt;Mobiltelefonen, Tablets, Browsern&lt;/strong&gt; und &lt;strong&gt;Laptops&lt;/strong&gt; über Tech-Stacks wie &lt;strong&gt;iOS, Android, JavaScript, .NET, Java, Ruby, Python, PHP&lt;/strong&gt; und mehr funktioniert.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;js&lt;br&gt;
const pnChannel = "map3-channel";&lt;br&gt;
const pubnub = new PubNub({&lt;br&gt;
  publishKey:   'YOUR_PUB_KEY',&lt;br&gt;
  subscribeKey: 'YOUR_SUB_KEY'&lt;br&gt;
});&lt;br&gt;
pubnub.subscribe({channels: [pnChannel]});&lt;br&gt;
pubnub.addListener({message:redraw});&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Die PubNub-Funktionalität zum &lt;strong&gt;Veröffentlichen&lt;/strong&gt; und &lt;strong&gt;Abonnieren&lt;/strong&gt; von Themen in Echtzeitkanälen bietet effiziente Daten-Streaming-Funktionen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Veröffentlichung von Lat/Long
&lt;/h2&gt;

&lt;p&gt;Für dieses einfache Tutorial richten wir einen einfachen JavaScript-Intervall-Timer ein, um neue Positionen auf der Grundlage der aktuellen Zeit zu veröffentlichen. Alle 500 Millisekunden rufen wir die anonyme Callback-Funktion auf, die ein neues Latitude/Longitude-Objekt (mit Koordinaten, die sich nach Nordosten bewegen) im angegebenen PubNub-Kanal veröffentlicht. In Ihrer Anwendung werden Sie die Position wahrscheinlich von einer Live-Geräteposition oder einem vom Benutzer gemeldeten Standort erhalten.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;js&lt;br&gt;
setInterval(function() {&lt;br&gt;
  pubnub.publish({channel:pnChannel, message:{lat:window.lat + 0.001, lng:window.lng + 0.01}});&lt;br&gt;
}, 500);&lt;br&gt;
&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Zu guter Letzt initialisieren wir die Google Maps API, um sicherzustellen, dass die DOM-Elemente und JavaScript-Voraussetzungen erfüllt sind.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`js&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Diese Tutorial-Serie hat uns gezeigt, wie die Google &lt;a href="https://developers.google.com/maps/documentation/javascript/overview"&gt;Maps API&lt;/a&gt; und &lt;a href="https://www.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub&lt;/a&gt; außergewöhnlich gut für die Echtzeit-Standortverfolgung in Web- und Mobil-Apps zusammenarbeiten. Dies ist vergleichbar mit der Art und Weise, wie Ride-Hailing-Dienste wie &lt;strong&gt;Uber&lt;/strong&gt; und &lt;strong&gt;Lyft&lt;/strong&gt; die Bewegung ihrer Fahrzeuge in Echtzeit anzeigen.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Schauen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder von PubNub betriebenen App zu verstehen. Hören Sie sich die Erfahrungen unserer Nutzer direkt auf unserer &lt;a href="https://github.com/PubNubDevelopers"&gt;GitHub-Seite&lt;/a&gt; und in den Testimonials auf unserer Website an.&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/#/login?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Account&lt;/a&gt; an, um sofort kostenlosen Zugang zu PubNub-Schlüsseln zu erhalten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starten Sie
&lt;/h2&gt;

&lt;p&gt;Die &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Dokumente&lt;/a&gt; werden Sie unabhängig von Ihrem Anwendungsfall zum Laufen bringen. Wir haben Abschnitte, die der JavaScript Google Maps API gewidmet sind und wie man sie mit Echtzeit-Tracking in unserem SDK verwendet.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Erkundung von Anwendungsfällen für kognitive Dienste</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Fri, 31 May 2024 14:06:20 +0000</pubDate>
      <link>https://forem.com/pubnub-de/erkundung-von-anwendungsfallen-fur-kognitive-dienste-4ih4</link>
      <guid>https://forem.com/pubnub-de/erkundung-von-anwendungsfallen-fur-kognitive-dienste-4ih4</guid>
      <description>&lt;p&gt;Schauen wir uns einige Beispiele für Anwendungen und Unternehmen an, die durch kognitive Dienste verändert wurden, und einige zukünftige Anwendungsfälle, um zu sehen, wie sehr sie die Technologielandschaft verändern.&lt;/p&gt;

&lt;p&gt;Dank der kognitiven Dienste von Cloud-Giganten wie AWS, IBM und Microsoft Azure haben Entwicklerteams jeder Größe jetzt Zugang zu &lt;a href="https://pubnub.com/resources/ebook/building-apps-with-cognitive-services/" rel="noopener noreferrer"&gt;kognitiven Diensten&lt;/a&gt; von atemberaubender Leistungsfähigkeit. Diese Dienste werden über APIs bereitgestellt und machen es einfach, Anwendungen mit der Intelligenz der nächsten Generation auszustatten.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://pubnub.com/learn/glossary/what-is-a-chat-api/" rel="noopener noreferrer"&gt;&lt;strong&gt;Chat&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;und soziale Interaktion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Im Jahr 2015 übertrafen die monatlich aktiven Nutzer von Chat-Apps die von sozialen Netzwerken, und die Kluft wird immer größer. Messaging ist zu einem wesentlichen Bestandteil der sozialen Netzwerke geworden. Und mit diesem rasanten Wachstum haben sich Messaging-Apps von einfachen Tools zum Senden und Empfangen von kurzen, textbasierten Nachrichten zu innovativen, vollwertigen Erlebnissen mit überraschenden und interessanten Funktionen entwickelt. Und die treibende Kraft dieser Innovation sind kognitive APIs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Chatbots und kognitives Rechnen&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Chatbots sind eine der frühesten Formen von KI-Algorithmen. Es ist zwar unwahrscheinlich, dass sie bald den Turing-Test bestehen, aber sie sind die natürliche Weiterentwicklung von sprachgesteuerten Anwendungen. Wo Sie früher eine Support-Hotline anriefen und die 1 für die Kreditorenbuchhaltung drückten, können Sie jetzt in ganzen Sätzen mit einem System sprechen, das Ihre Absicht erkennt.&lt;/p&gt;

&lt;p&gt;Ob Sie sich dessen bewusst sind oder nicht, die Akzeptanz von Chatbots ist explodiert, da Unternehmen versuchen, Wartezeiten zu verkürzen, die Kundenerfahrung zu verbessern und die Kosten für menschliche Telefonisten zu minimieren. Im Moment werden sie hauptsächlich für einfache Aufgaben eingesetzt: Sie verstehen einfache Anfragen und reagieren auf der Grundlage vordefinierter Regeln, indem sie Fragen wie "Wo ist meine Bestellung?" oder "Chatbot, schalte das Stimmungslicht ein" beantworten.&lt;/p&gt;

&lt;p&gt;APIs wie &lt;a href="https://www.ibm.com/cloud/watson-assistant/" rel="noopener noreferrer"&gt;Watson Assistant&lt;/a&gt; oder &lt;a href="https://aws.amazon.com/lex/" rel="noopener noreferrer"&gt;Amazon Lex&lt;/a&gt; machen es jedoch einfach, Dienste zu entwickeln, die Logik auf beobachtete Muster in diesen natürlichsprachlichen Anfragen anwenden können. Diese Dienste können z. B. einen plötzlichen Ansturm von Anrufen von einem Flughafen mit Startverspätungen beobachten und die Reihenfolge der Optionen ändern, um die Umplanung von Flügen zu priorisieren. Oder sie stellen fest, dass Anrufe aus einem bestimmten Land oder einer bestimmten Region tendenziell in einer anderen Sprache getätigt werden, und ändern die Standardeinstellung entsprechend. Sie können sogar grammatikalische Muster erkennen, die darauf hinweisen, dass Kunden sofort an einen Vorgesetzten weitergeleitet werden sollen.&lt;/p&gt;

&lt;p&gt;Intelligente Konversationsschnittstellen, die Spracherkennung, Text-to-Speech, Gesichtserkennung und Modelle für maschinelles Lernen nutzen, können für verschiedene Zwecke äußerst ansprechende Erlebnisse und lebensnahe Gespräche bieten. Und was noch besser ist: Sie werden aus diesen Erfahrungen lernen.&lt;/p&gt;

&lt;p&gt;Chatbots werden die Art und Weise verändern, wie wir Bankgeschäfte tätigen, einkaufen und lernen: Sie geben Empfehlungen, verstehen abstrakte Konzepte und lernen Menschen auf der Grundlage früherer Kontakte kennen. Irgendwann werden sie so gut sein, dass man gar nicht mehr merkt, dass man mit einem Menschen spricht.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Code-Beispiel: Chatbot für Hausautomatisierung&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Mit Watson und der PubNub ChatEngine können Sie ganz einfach &lt;a href="https://www.pubnub.com/docs/chat/samples?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;einen Chatbot mit künstlicher Intelligenz&lt;/a&gt; erstellen, der Ihr Smart Home steuert.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2Fasset-17suaysk1qa1j6q%2F194c3f35c69c92190fb678a82720e014%2Fchatengine-home-automation.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2Fasset-17suaysk1qa1j6q%2F194c3f35c69c92190fb678a82720e014%2Fchatengine-home-automation.jpg" title="chatengine home automation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dieses Tutorial zeigt Ihnen, wie Sie einen Chatbot erstellen, der Textbefehle annimmt, sie analysiert und darauf basierend Aktionen ausführt. Beispiel: Ein Benutzer gibt ein: "Schalte das Licht im Wohnzimmer ein", und der Bot schaltet das Licht ein.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;homeauto_intents&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
  &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;intent&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;turnOFF&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;examples&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Put off&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Switch off&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Turn off&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;description&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Turn on intents&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;intent&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;turnON&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;examples&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
      &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Put on&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Switch on&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Turn on&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;description&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Turn off intents&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Verarbeitung natürlicher Sprache&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ein weiterer wichtiger Bereich ist die Datenwissenschaft und die Verarbeitung natürlicher Sprache (Natural Language Processing, NLP), der Oberbegriff für KI-Lösungen, die große Mengen von Daten in natürlicher Sprache verarbeiten können. NLP kann nicht nur Wörter und Grammatik aus einer semantischen Perspektive bewerten, sondern auch Gefühle und Emotionen erkennen, indem es die Gefühle der Nutzer zu einem Thema oder einer Sache durch die Analyse von Nachricht zu Nachricht herausfindet.&lt;/p&gt;

&lt;p&gt;NLP ist ein enormer Vorteil für Marken, Persönlichkeiten des öffentlichen Lebens und Organisationen, die die Meinungen der Nutzer verstehen und darauf reagieren müssen - und das in einer Zeit, in der ein guter Ruf innerhalb von Minuten auf- oder abgebaut werden kann. Stellen Sie sich vor, eine Marke bringt einen neuen Werbespot für ein Produkt auf den Markt. Mit den richtigen kognitiven Diensten kann sie einen Social-Media-Stream zu einem bestimmten Hashtag oder dem Produktnamen anzapfen und ihre NLP-API alle relevanten Nachrichten analysieren und Feedback dazu geben, wie die Öffentlichkeit auf das Produkt reagiert.&lt;/p&gt;

&lt;p&gt;Unten sehen Sie ein Beispiel für eine App, die entwickelt wurde, um zu analysieren und zu bewerten, wie die Menschen auf Twitter über US-Politiker denken. Sie überwacht bestimmte Schlüsselwörter und Phrasen und kann dann die Emotionen der Nutzer in bestimmten geografischen Regionen darstellen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdownloads.ctfassets.net%2F3prze68gbwl1%2Fasset-17suaysk1qa1j6r%2F92344c256d72ebba547a73bdf5c30441%2F1_d_i_gD52jeJi71ihWIt9rA-1.gif%3Fw%3D700%26h%3D550" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdownloads.ctfassets.net%2F3prze68gbwl1%2Fasset-17suaysk1qa1j6r%2F92344c256d72ebba547a73bdf5c30441%2F1_d_i_gD52jeJi71ihWIt9rA-1.gif%3Fw%3D700%26h%3D550" title="1 d i gD52jeJi71ihWIt9rA 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wenn ein Nutzer zum Beispiel den Text "Ich bin glücklich" eingibt...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session_id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;I am happy!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;analysiert Watson den Text und liefert folgende Ergebnisse:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session_id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;text&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;I am happy!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;session_sentiment&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;overall&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.879998&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;positive&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;count&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;avg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.879998&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;negative&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;count&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;avg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;neutral&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;count&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
         &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;avg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="p"&gt;},&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;score&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.88006828&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Marken geben bereits große Summen für die Analyse von Marktstimmungen aus. Da diese Systeme immer intelligenter, robuster und automatisierter werden, können sie die Öffentlichkeit zu geringeren Kosten viel besser verstehen.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;eCommerce&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Obwohl das Online-Shopping die Art und Weise, wie wir Waren einkaufen, völlig verändert hat, fehlt dem elektronischen Handel eine Schlüsselkomponente eines stationären Geschäfts: hilfsbereite Mitarbeiter. In der Größenordnung, in der Online-Shops arbeiten, ist es wirtschaftlich nicht tragbar, echte Mitarbeiter für den Live-Chat einzusetzen.&lt;/p&gt;

&lt;p&gt;Aus diesem Grund setzen viele Online-Shops auf intelligente Shopping-Assistenten, die das Einkaufserlebnis optimieren, den Kunden bei Fragen helfen, Empfehlungen geben und sogar die Kasse bedienen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wersm.com/nordstrom-ruled-holidays-with-its-amazing-chatbot/" rel="noopener noreferrer"&gt;Nordstrom hat die vergangenen Weihnachtssaisonen&lt;/a&gt; mit seinem Messenger-Chatbot&lt;a href="https://wersm.com/nordstrom-ruled-holidays-with-its-amazing-chatbot/" rel="noopener noreferrer"&gt;dominiert&lt;/a&gt;, der über einfache vordefinierte Fragen und Antworten hinausging und kognitive Dienste nutzte, um wirklich zu verstehen, wonach der Kunde suchte, und ihm bei Bedarf zu helfen. Er bot Geschenkempfehlungen an und konnte sogar bei der Ausführung der Bestellung helfen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2Fasset-17suaysk1qa1j6t%2F720950f250125abd6e6be3c136c6306b%2Fnordstrombot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2Fasset-17suaysk1qa1j6t%2F720950f250125abd6e6be3c136c6306b%2Fnordstrombot.png" title="nordstrombot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chatbots ersparen uns auch den gefürchteten Anruf beim Kundensupport, bei dem wir eine Stunde auf einen Mitarbeiter warten müssen, um ein einfaches Problem zu lösen. Amazon hat Chatbots eingesetzt, die kleinere Probleme lösen können, die die meisten Kunden haben, wenn sie Hilfe bei ihren Bestellungen benötigen.&lt;/p&gt;

&lt;p&gt;Nachdem wir uns nun einige Beispiele für Intelligenz in der realen Welt angesehen haben, wollen wir einen Blick in die Zukunft werfen und sehen, wie kognitive Dienste unsere Welt in Zukunft verändern werden.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Intelligente Städte&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Die Städte der Zukunft werden auf verschiedene integrierte intelligente Dienste angewiesen sein, um sie sicherer, effizienter und umweltbewusster zu machen. Bilderkennung, Computer Vision und Vision-APIs werden bei diesem Wandel eine entscheidende Rolle spielen, indem sie Bilder im städtischen Raum verarbeiten und Maßnahmen ergreifen.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Landwirtschaft&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Die Weltbevölkerung wächst weiter, und die Ernährung dieser Milliarden von Menschen wird in den kommenden Jahren eine große Herausforderung darstellen. Kognitive Dienste werden eine entscheidende Rolle bei der Bewirtschaftung von Feldern und Fabriken spielen und es uns ermöglichen, intelligente Entscheidungen zu treffen und Ressourcen mit einer nie dagewesenen Präzision zu steuern.&lt;/p&gt;

&lt;p&gt;Intelligente Bauernhöfe und das Internet der Dinge werden so viele wertvolle Datenpunkte wie möglich einbeziehen, um intelligente landwirtschaftliche Entscheidungen zu treffen, selbst solche, die kontraintuitiv erscheinen. Durch die Zusammenführung von Echtzeit-Wetterdaten, Fernsensordaten und historischen Leistungsdaten können kognitive Dienste beispielsweise den individuellen Bewässerungsplan perfektionieren und an die tagesaktuellen Gegebenheiten anpassen.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Datensicherheit&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In dem Maße, in dem wir immer stärker vernetzt sind und unser digitales Leben unser physisches Leben überschattet, werden Datenschutz und Datensicherheit von etwas, dessen wir uns nur vage bewusst sind, zu einer beunruhigenden, allgegenwärtigen persönlichen Bedrohung.&lt;/p&gt;

&lt;p&gt;Vorschriften und Regeln - HIPAA, GDPR, SOC II - sind eine Möglichkeit, um sicherzustellen, dass Unternehmen und Organisationen über die richtigen Leitplanken verfügen. Die Umsetzung dieser komplexen Vorschriften im Detail kann eine Menge Arbeit bedeuten, und genau hier kommt das maschinelle Lernen ins Spiel.&lt;/p&gt;

&lt;p&gt;Kognitive Dienste können darauf trainiert werden, Regeln und Vorschriften zu verstehen und zu interpretieren, und schlagen dann Wege zur Einhaltung der Vorschriften vor. Mit kognitiven Diensten lassen sich wertvolle Einblicke in die Datensicherheit gewinnen, von relevanten Regeln und Gesetzen bis hin zur Moderation von Inhalten.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Gesundheitswesen&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Innovationen kommen in der Gesundheitsbranche in der Regel langsamer voran als in anderen Branchen, und zwar aus mehreren Gründen: enge Gewinnspannen, strenge Vorschriften und isolierte Forschung und Entwicklung. Kognitive Dienste bieten die Möglichkeit, Innovationsbarrieren zu beseitigen und das Versorgungssystem von den Organisationen bis hin zu den Patienten zu verbessern.&lt;/p&gt;

&lt;p&gt;Die Entscheidungsfindung im Gesundheitswesen erfolgt in der Regel auf einer isolierten Basis von Patient zu Patient. Kognitive Dienste hingegen analysieren und handeln auf der Grundlage eines umfassenden Überblicks über die Faktoren, die die Gesundheit beeinflussen: sozioökonomischer Status, Umfeld, Zugang zur Gesundheitsversorgung usw. Kognitive Dienste können dem Arzt eine bessere, gezieltere Patientenversorgung empfehlen, einschließlich Gesundheits- und Wellnessprogrammen.&lt;/p&gt;

&lt;p&gt;Kognitive Dienste können die Integration und Verknüpfung bestehender Systeme in Gesundheitsorganisationen vorantreiben und wichtige Erkenntnisse zutage fördern. Wenn Organisationen plötzlich in der Lage sind, Daten zu aggregieren und die Bedürfnisse der Beteiligten miteinander zu verbinden, können sie eine bessere Versorgung bieten und gleichzeitig effizienter arbeiten.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Intelligenz jetzt&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In diesem Artikel wurde nur ein winziger Ausschnitt dessen beschrieben, wie kognitive Dienste die Art und Weise, wie wir über Unternehmen denken, und die Rolle, die Anwendungen spielen können, verändern werden. In der Vergangenheit folgte die Software den Anweisungen. Mit kognitiven Diensten können sich Lösungen anpassen, weiterentwickeln und Dinge vollbringen, die noch vor wenigen Jahren unmöglich erschienen. Wir können noch nicht alle Auswirkungen absehen, aber nach dem, was wir wissen, besteht kaum ein Zweifel daran, dass die Auswirkungen auf die Wirtschaft tiefgreifend und positiv sein werden - und dass sie schneller da sein werden, als Sie es sich vorstellen können.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wie kann PubNub Ihnen helfen?
&lt;/h1&gt;

&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/blog/the-many-uses-of-cognitive-services/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub.com&lt;/a&gt; veröffentlicht.&lt;/p&gt;

&lt;p&gt;Unsere Plattform unterstützt Entwickler bei der Erstellung, Bereitstellung und Verwaltung von Echtzeit-Interaktivität für Webanwendungen, mobile Anwendungen und IoT-Geräte.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Sehen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/signup/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Account&lt;/a&gt; an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginnen Sie
&lt;/h2&gt;

&lt;p&gt;Mit den &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Dokumenten&lt;/a&gt; können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;SDK&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Verfolgung von GitHub Dashboard Commits in Echtzeit</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Thu, 30 May 2024 19:41:33 +0000</pubDate>
      <link>https://forem.com/pubnub-de/verfolgung-von-github-dashboard-commits-in-echtzeit-3a47</link>
      <guid>https://forem.com/pubnub-de/verfolgung-von-github-dashboard-commits-in-echtzeit-3a47</guid>
      <description>&lt;p&gt;Im Bereich der Softwareentwicklung bieten C3.js-Echtzeitdiagramme eine effektive Möglichkeit zur Überwachung der Aktivitäten in Ihrem Unternehmen. Für Entwicklungsteams ist eine der verfolgbaren Metriken GitHub Commits. Dieser Blog-Beitrag bietet ein Tutorial, das Sie durch den Prozess der Nutzung der GitHub-API führt, um GitHub-Commit-Daten in einem interaktiven Echtzeitdiagramm abzurufen und anzuzeigen. Wir nutzen die Möglichkeiten von HTML, Javascript und CSS und verwenden PubNub, um das GitHub-Dashboard zu erstellen und die Commit-Daten zu streamen, während C3.js bei der Visualisierung hilft.&lt;/p&gt;

&lt;p&gt;Um mehr über &lt;a href="https://pubnub.com/blog/building-realtime-live-updating-animated-graphs-c3-js/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Echtzeit-C3.js-Diagramme&lt;/a&gt; zu erfahren &lt;a href="https://pubnub.com/blog/building-realtime-live-updating-animated-graphs-c3-js/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;, haben wir ein großartiges Tutorial&lt;/a&gt;. Jetzt können wir eintauchen!&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie man ein Echtzeit-GitHub-Dashboard erstellt
&lt;/h2&gt;

&lt;p&gt;Um ein GitHub-Dashboard in Echtzeit zu erstellen, müssen Sie eine Verbindung zu verschiedenen Datenquellen wie dem GitHub-Repository herstellen und sich um einige notwendige Abhängigkeiten kümmern. Achten Sie auf die notwendigen Cybersicherheitsmaßnahmen wie sichere Kodierung und Datenverschlüsselung. Die Einhaltung der branchenüblichen Sicherheitsprotokolle ist unabdingbar.&lt;/p&gt;

&lt;p&gt;Hier ist eine Schritt-für-Schritt-Anleitung:&lt;/p&gt;

&lt;h3&gt;
  
  
  Hinzufügen eines GitHub-Webhooks
&lt;/h3&gt;

&lt;p&gt;Führen Sie folgende Schritte aus, um den Webhook einzurichten:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Erstellen Sie ein GitHub-Repository oder verwenden Sie ein vorhandenes Git-Repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Klicken Sie auf "Einstellungen" auf der rechten Seite der Seite&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Klicken Sie auf "&lt;a href="https://www.pubnub.com/learn/glossary/what-is-a-webhook/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Webhooks&lt;/a&gt;" auf der linken Seite der Seite&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Klicken Sie oben rechts auf "Webhook hinzufügen".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub fragt Sie nach Ihrem Passwort, geben Sie es ein&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Geben Sie unter 'Payload URL' ein: &lt;strong&gt;&lt;a href="http://pubnub-git-hook.herokuapp.com/github/ORG-NAME/TEAM-NAME"&gt;http://pubnub-git-hook.herokuapp.com/github/ORG-NAME/TEAM-NAME&lt;/a&gt;.&lt;/strong&gt; Ersetzen Sie ORG-NAME durch den Namen Ihrer Organisation und TEAM-NAME durch das Team, das das Repo kontrolliert.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w2capVyV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/3ClKsiJfxkUjxO6wIEgADI/51ef64eb2a41df60ba14db62255e2c70/Screenshot_2024-05-30_at_3.09.23_PM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w2capVyV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/3ClKsiJfxkUjxO6wIEgADI/51ef64eb2a41df60ba14db62255e2c70/Screenshot_2024-05-30_at_3.09.23_PM.png" title="Github Webhook Settings" width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Laden Sie das Visual Dashboard
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://pubnub.github.io/git-commits-ui/"&gt;Besuchen Sie diese Seite&lt;/a&gt;. Sie werden eine Liste aller Commits sehen, die über das PubNub-Dashboard gesendet wurden - toll! Wenn Sie einen Ihrer Commits an GitHub senden, sollten Sie innerhalb weniger Millisekunden eine Nachricht auf Ihrem GitHub-Commit-Dashboard sehen, und die Diagramme werden in Echtzeit aktualisiert.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie wir das Github Commit Dashboard aufgebaut haben
&lt;/h2&gt;

&lt;p&gt;Das Dashboard ist ein Mashup aus GitHub, dem PubNub Data Stream Network und D3-Diagrammvisualisierungen, die von &lt;a href="https://c3js.org/"&gt;C3.js&lt;/a&gt; unterstützt werden. Wenn ein Commit auf GitHub gepusht wird, werden die Commit-Metadaten an eine kleine Heroku-Instanz gesendet, die sie im PubNub-Netzwerk veröffentlicht. &lt;a href="https://pubnub.github.io/git-commits-ui/"&gt;Wir hosten die Dashboard-Seite auf den GitHub-Seiten.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sobald unsere Heroku-Instanz die Commit-Daten von GitHub erhält, veröffentlicht sie eine Zusammenfassung dieser Daten auf PubNub unter Verwendung der öffentlichen Publish/Subscribe-Schlüssel im Kanal &lt;strong&gt;pubnub-git&lt;/strong&gt;. &lt;a href="https://www.pubnub.com/docs/console/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Sie können den pubnub-git-Kanal über unsere Entwicklerkonsole hier überwachen&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Hier ist ein Beispiel für die Nutzlast einer Nachricht:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;drnugent&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;avatar_url&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://avatars.githubusercontent.com/u/857270?v=3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;num_commits&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;team&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;team-pubnub&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;org&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pubnub&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;time&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1430436692806&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;repo_name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;drnugent/test&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die zweite Hälfte der Magie geschieht, wenn das Dashboard diese Informationen über seinen &lt;strong&gt;Subscribe-Callback&lt;/strong&gt; erhält. Wenn Sie sich den Quelltext des Dashboards ansehen, werden Sie diesen Code sehen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;subscribe&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pubnub-git&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;displayLiveMessage&lt;/span&gt;

&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dieser subscribe-Aufruf stellt sicher, dass die JavaScript-Funktion &lt;strong&gt;displayLiveMessage()&lt;/strong&gt; jedes Mal aufgerufen wird, wenn eine Nachricht auf dem &lt;strong&gt;pubnub-git-Kanal&lt;/strong&gt; empfangen wird. displayLiveMessage() fügt die Commit-Push-Benachrichtigung an den Anfang des Protokolls und aktualisiert die C3-Visualisierungsdiagramme.&lt;/p&gt;

&lt;p&gt;Aber Moment, wie wird das Dashboard beim ersten Laden gefüllt?&lt;/p&gt;

&lt;h2&gt;
  
  
  Die Nutzung der PubNub Storage &amp;amp; Playback API für Ihr Dashboard
&lt;/h2&gt;

&lt;p&gt;PubNub speichert jede gesendete Nachricht und bietet Entwicklern mit der &lt;a href="https://www.pubnub.com/products/pubnub-platform/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Storage &amp;amp; Playback (History) API&lt;/a&gt; eine Möglichkeit, auf diese gespeicherten Nachrichten zuzugreifen. Tiefer im Web-Dashboard werden Sie den folgenden Code sehen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;displayMessages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;displayMessage&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;history&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;channel&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;pubnub-git&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;callback&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;displayMessages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dies ist eine Anfrage zum Abrufen der letzten 1.000 Nachrichten, die über den pubnub-git-Kanal gesendet wurden. Auch wenn das Web-Dashboard zum Zeitpunkt des Versands dieser Nachrichten offline war, kann es sie abrufen und diese Daten verwenden, um das Dashboard so aufzufüllen, als ob es ständig online wäre.&lt;/p&gt;

&lt;p&gt;Diese Funktion ist besonders nützlich, wenn es um Geräte mit unterbrochener oder unzuverlässiger Konnektivität geht, wie z. B. mobile Anwendungen in Mobilfunknetzen oder vernetzte Autos. Dank des PubNub-Netzwerks benötigt unser Visualisierungs-Dashboard kein Backend, um den Zustand der Anwendung zu speichern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bauen Sie Ihr eigenes GitHub-Dashboard
&lt;/h2&gt;

&lt;p&gt;Um mit der Erstellung Ihres Github-Dashboards zu beginnen, forken Sie das Git Commit UI-Repository auf github.com und folgen Sie den README-Anweisungen zur Einrichtung. Pull Requests sind als Teil der Open-Source-Community-Zusammenarbeit willkommen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fL31VUXB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/asset-17suaysk1qa1huv/16fe7d9c1c2eb1d0d182c33c37a40f57/687474703a2f2f692e696d6775722e636f6d2f4d524b32304b622e676966.gif%3Fw%3D700%26h%3D550" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fL31VUXB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://www.pubnub.com/cdn/3prze68gbwl1/asset-17suaysk1qa1huv/16fe7d9c1c2eb1d0d182c33c37a40f57/687474703a2f2f692e696d6775722e636f6d2f4d524b32304b622e676966.gif%3Fw%3D700%26h%3D550" title="687474703a2f2f692e696d6775722e636f6d2f4d524b32304b622e676966" width="700" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Zukünftige Trends und Entwicklungen bei Echtzeit-Dashboards
&lt;/h2&gt;

&lt;p&gt;Es ist wichtig, die letzten Trends und Entwicklungen bei Echtzeit-Dashboards und verwandten Technologien im Auge zu behalten. Dazu gehören Websockets für die Datenübertragung in Echtzeit, die Verwendung von Benachrichtigungen für sofortige Einblicke und die Verwendung von Echtzeit-Dashboards in verschiedenen Arbeitsabläufen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Erfahrung mit PubNub
&lt;/h2&gt;

&lt;p&gt;PubNub hat zahlreichen Kunden geholfen, mit ihren Echtzeitanwendungen erfolgreich zu sein. Zum Beispiel das Echtzeit-Benachrichtigungssystem von LinkedIn...&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für ein PubNub-Konto an, um sofort und kostenlos Zugang zu den PubNub-Schlüsseln zu erhalten. Die neuesten Funktionen in Ihrem PubNub-Konto umfassen ...&lt;/p&gt;

&lt;h2&gt;
  
  
  Anfangen
&lt;/h2&gt;

&lt;p&gt;Mit unseren umfassenden &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Dokumenten&lt;/a&gt; sind Sie im Handumdrehen startklar, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;SDK&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;PubNub bietet eine benutzerfreundliche Plattform zur Verbesserung der Benutzerfreundlichkeit. Unsere Dienste sind so konzipiert, dass sie Entwicklern einen nahtlosen Integrationsprozess ermöglichen.&lt;/p&gt;

&lt;p&gt;Vergessen Sie nicht, dass wir hier sind, um Ihre Echtzeit-Entwicklungsreise reibungsloser und effizienter zu gestalten. Richten Sie Ihre Nutzdaten-URL ein und lassen Sie uns beginnen!&lt;/p&gt;

&lt;p&gt;Offizielle Dokumentationen und maßgebliche Quellen können im gesamten Blogpost referenziert werden, um die Gültigkeit der Informationen zu bestätigen.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wie kann PubNub Ihnen helfen?
&lt;/h1&gt;

&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/blog/tracking-realtime-github-dashboard-commits/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub.com&lt;/a&gt; veröffentlicht.&lt;/p&gt;

&lt;p&gt;Unsere Plattform unterstützt Entwickler bei der Erstellung, Bereitstellung und Verwaltung von Echtzeit-Interaktivität für Webanwendungen, mobile Anwendungen und IoT-Geräte.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Sehen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/signup/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Account&lt;/a&gt; an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginnen Sie
&lt;/h2&gt;

&lt;p&gt;Mit den &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub-Dokumenten&lt;/a&gt; können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;SDK&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Sichere Moderation von Chats und Benutzern mit BizOps Workspace</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Thu, 23 May 2024 10:10:12 +0000</pubDate>
      <link>https://forem.com/pubnub-de/sichere-moderation-von-chats-und-benutzern-mit-bizops-workspace-jf</link>
      <guid>https://forem.com/pubnub-de/sichere-moderation-von-chats-und-benutzern-mit-bizops-workspace-jf</guid>
      <description>&lt;p&gt;Dieser How-to-Artikel ist Teil einer Reihe von Artikeln, die sich mit den Datenverwaltungsfunktionen von PubNub befassen, die unter dem Namen &lt;a href="https://pubnub.com/docs/bizops-workspace/basics?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;BizOps Workspace&lt;/a&gt; bekannt sind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Verwalten von Benutzern und Kanälen mit BizOps Workspace&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Überwachung und Moderation von Konversationen mit BizOps Workspace&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Sichere Moderation von Konversationen und Benutzern mit BizOps Workspace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;BizOps Workspace ist eine Reihe von Tools, die Sie bei der Verwaltung Ihrer Anwendung unterstützen. Dieser Artikel erweitert den vorherigen Artikel "&lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Überwachen und Moderieren von Konversationen mit BizOps Workspace&lt;/a&gt;", um eine sichere End-to-End-Chat-Anwendung mit manuellen Moderationsfunktionen zu zeigen, d. h. die Möglichkeit, Konversationen in Echtzeit zu überwachen und Benutzer stummzuschalten oder zu sperren.&lt;/p&gt;

&lt;p&gt;Obwohl dieser Artikel für sich alleine gelesen werden kann, empfehle ich dringend, den vorherigen Artikel "&lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;How to Monitor and Moderate Conversations with BizOps Workspace&lt;/a&gt;" zu lesen, um den Hintergrund der hier besprochenen Konzepte besser zu verstehen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was ist der Channel Monitor?
&lt;/h2&gt;

&lt;p&gt;Mit dem Channel Monitor können Chat-Moderatoren eine Live-Vorschau von Unterhaltungen sehen, die in Echtzeit über mehrere Kanäle laufen. Wenn der Moderator etwas Beunruhigendes entdeckt, wie z. B. einen sich daneben benehmenden Benutzer oder beleidigende Nachrichten, kann er sofort eingreifen, um das Problem zu beseitigen.&lt;/p&gt;

&lt;p&gt;Der Moderator hat einen großen Spielraum bei der Wahl seiner Maßnahmen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Einen Benutzer beobachten, ohne seine Zugriffsrechte einzuschränken&lt;/li&gt;
&lt;li&gt;  Bearbeiten oder Löschen der beleidigenden Nachricht&lt;/li&gt;
&lt;li&gt;  die Fähigkeit des Benutzers, Nachrichten zu veröffentlichen, einschränken&lt;a href="https://pubnub.com/docs/bizops-workspace/channel-monitor#mute?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;(stummschalten&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;  die Fähigkeit des Benutzers, Nachrichten zu lesen oder zu veröffentlichen, einschränken&lt;a href="https://pubnub.com/docs/bizops-workspace/channel-monitor#ban?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;(Verbot&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alle Funktionen der Funktion "Überwachen" sind manuell: manuelle Überprüfung von Nachrichten, manuelles Stummschalten von Benutzern usw. Dieser Artikel befasst sich nicht mit der automatischen Moderation.&lt;/p&gt;

&lt;p&gt;Um den Channel Monitor nutzen zu können, müssen Sie mehrere Funktionen in Ihrem PubNub Keyset aktiviert haben, insbesondere &lt;a href="https://www.pubnub.com/docs/general/metadata/channel-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;App-Kontext&lt;/a&gt; und &lt;a href="https://www.pubnub.com/docs/general/storage?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Nachrichtenpersistenz&lt;/a&gt;. Weitere Details finden Sie im Abschnitt "Anforderungen an das Keyset für den Channel Monitor" im &lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;vorherigen Artikel&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was ist der PubNub Access Manager?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Entwickler müssen verhindern, dass Benutzer versuchen, ihr Moderationssystem zu umgehen&lt;/strong&gt;; dies wird durch den PubNub Access Manager erreicht.&lt;/p&gt;

&lt;p&gt;Mit dem &lt;a href="https://www.pubnub.com/docs/general/security/access-control?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Access Manager&lt;/a&gt; können Sie eine Reihe von Regeln definieren, die die Berechtigungen des oder der angegebenen Benutzer beschreiben und welche Aktionen sie auf bestimmten Ressourcen durchführen können. Zum Beispiel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Benutzer mit der ID &lt;code&gt;123&lt;/code&gt; hat die Berechtigung zum Lesen und Schreiben auf Channel &lt;code&gt;456&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  Alle Benutzer, deren ID mit dem regulären Ausdruck &lt;code&gt;user-*&lt;/code&gt; übereinstimmt, können von jedem Channel lesen, dessen ID mit dem regulären Ausdruck &lt;code&gt;global-*&lt;/code&gt; übereinstimmt&lt;/li&gt;
&lt;li&gt;  Benutzer mit der ID &lt;code&gt;123&lt;/code&gt; hat die Berechtigung, die Channel-Metadaten (d. h. den App-Kontext) zu aktualisieren.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eine vollständige Liste der Berechtigungen finden Sie in der Dokumentation unter &lt;a href="https://www.pubnub.com/docs/general/security/access-control#permissions?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;https://www.pubnub.com/docs/general/security/access-control#permissions.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Der PubNub Access Manager ist Token-basiert, und der einfachste Weg, ihn zu beschreiben, ist, den in der &lt;a href="https://www.pubnub.com/docs/general/security/access-control?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Dokumentation&lt;/a&gt; dargestellten Autorisierungsfluss durchzugehen und einige zusätzliche Informationen darüber zu geben, wie dieser Fluss mit der Moderation zusammenhängt:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F6VXlbbCqQz8X8GKG1yU7Xc%2Fa8597a87f1bf8a701737935141b45918%2Fpam-v3-authorization-flow-d3c28108b6948645d029e42097d1b30e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F6VXlbbCqQz8X8GKG1yU7Xc%2Fa8597a87f1bf8a701737935141b45918%2Fpam-v3-authorization-flow-d3c28108b6948645d029e42097d1b30e.png" title="How-to - BizOps Workspace Secure Chat - Image 01" alt="Access Manager workflow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Anmeldeversuch&lt;/strong&gt;. Ihr Client authentifiziert sich gegenüber Ihrem Server, um Ihre Benutzer bei Ihrer Anwendung anzumelden. Dies geschieht wahrscheinlich über einen Identitätsanbieter; nach diesem Schritt ist Ihr Server sicher, dass er mit einem registrierten App-Benutzer spricht und wer dieser ist. Der Client fordert ein PubNub Access Manager Authentifizierungs-Token als Teil seiner Initialisierung an.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Antrag auf Erlaubniserteilung&lt;/strong&gt;. Der Server bearbeitet die Anfrage des Clients nach einem Token, indem er die SDK '&lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager#grant-token?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;grantToken()&lt;/a&gt;' API aufruft. Zu dieser API sind einige Punkte zu beachten: Sie kann nur mit dem &lt;strong&gt;geheimen PubNub-Schlüssel&lt;/strong&gt; aufgerufen werden und kann daher nur von einem Server aus aufgerufen werden; sie ist für alle unsere serverseitigen SDKs verfügbar; und diese API akzeptiert JSON-Objekte, um die Ressourcen und Berechtigungen zu definieren, die den Zugriff des/der Benutzer(s) bestimmen.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Token zurückgegeben&lt;/strong&gt;. PubNub gewährt dem/den angeforderten Benutzer(n) die angeforderten Berechtigungen und gibt ein Authentifizierungs-Token an den Server zurück.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Token übergeben&lt;/strong&gt;. Ihr Server gibt das Authentifizierungs-Token an den ursprünglich aufrufenden Client zurück.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Token gesetzt&lt;/strong&gt;. Der Client kann dieses Authentifizierungs-Token während seiner Initialisierung oder zu einem beliebigen Zeitpunkt während des Lebenszyklus der Anwendung mit der Methode &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager#set-token?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;setToken()&lt;/a&gt; festlegen. Die Möglichkeit, das Token jederzeit zu aktualisieren, ist wichtig, da Token ablaufen, ein Client aber auch ein neues Token anfordern muss, wenn der Channel Monitor seine Berechtigungen aktualisiert (d. h. wenn er stummgeschaltet oder gesperrt wird).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Autorisierte API-Anfrage&lt;/strong&gt;. Alle nachfolgenden Aufrufe an PubNub werden nun als autorisiert betrachtet. PubNub erlaubt oder verweigert jede API-Anfrage basierend auf den in Schritt 2 erteilten Berechtigungen und der Token-Gültigkeit des Clients.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Wie sieht eine sichere Moderationslösung aus?
&lt;/h2&gt;

&lt;p&gt;Gegen Ende des &lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;letzten Artikels&lt;/a&gt; habe ich eine Demo gezeigt, wie das Stummschalten oder Sperren von der Client-Seite aus aussehen würde. Das Chat-SDK enthält &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#listen-to-moderation-events?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Moderationsereignisse&lt;/a&gt;, die einem Client mitteilen, ob er stummgeschaltet oder gesperrt wurde oder nicht; abgesehen von der Aktualisierung der Benutzeroberfläche &lt;strong&gt;hindert dies den Client&lt;/strong&gt; jedoch &lt;strong&gt;nicht daran, weiterhin Nachrichten zu senden, obwohl er stummgeschaltet/gesperrt wurde&lt;/strong&gt;. Um den Client sicher stumm zu schalten oder zu sperren, müssen Sie ihm die bestehenden Access Manager-Berechtigungen entziehen und ihm neue erteilen, die seinen neuen Stumm- oder Sperrstatus widerspiegeln.&lt;/p&gt;

&lt;p&gt;Stellen Sie sich das folgende Szenario vor, in dem ein Benutzer für den Channel "Musicals" stummgeschaltet ist:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F2CHx5c361f7BWbrHAbI99t%2F220aebf2f99c53ba43b91053a2902d28%2FSecure_chat_sequence_diagram.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F2CHx5c361f7BWbrHAbI99t%2F220aebf2f99c53ba43b91053a2902d28%2FSecure_chat_sequence_diagram.png" title="How-to - BizOps Workspace Secure Chat - Image 02" alt="Secure chat sequence diagram"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Ein Benutzer kann auf zwei Kanäle zugreifen, "Filme" und "Musicals", aber der Administrator möchte ihn nur für den Kanal "Musicals" stummschalten.&lt;/li&gt;
&lt;li&gt; Der Moderator schaltet den Benutzer mit Hilfe des Channel-Monitors stumm. Im Verborgenen wird dabei die API '&lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#method-signature-1?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;setRestrictions()&lt;/a&gt;' aufgerufen.&lt;/li&gt;
&lt;li&gt; Die Serveranwendung erhält die Stummschaltungsmitteilung über ein &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#listen-to-moderation-events?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Moderationsereignis&lt;/a&gt; und &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager#revoke-token?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;entzieht&lt;/a&gt; dem Benutzer &lt;a href="https://www.pubnub.com/docs/sdks/javascript/api-reference/access-manager#revoke-token?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;das&lt;/a&gt; bestehende Zugriffstoken.&lt;/li&gt;
&lt;li&gt; Die Client-Anwendung erhält über ein &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation#listen-to-moderation-events?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Moderationsereignis&lt;/a&gt; den Hinweis, dass der Kanal "Musicals" stummgeschaltet wurde.&lt;/li&gt;
&lt;li&gt; Die Anwendung aktualisiert ihre Benutzeroberfläche, um das Senden weiterer Nachrichten zu verhindern. Der Benutzer könnte diese UI-Änderung umgehen, indem er das JavaScript der Seite ändert, aber jeder Versuch, Nachrichten zu senden, schlägt fehl, da sein Authentifizierungstoken widerrufen wurde.&lt;/li&gt;
&lt;li&gt; Die Anwendung fordert ein neues Authentifizierungs-Token vom Server an, wie im obigen Abschnitt über den Zugriffsmanager beschrieben. Das neu gewährte Token spiegelt die neuen Berechtigungen des Benutzers wider, einschließlich des "Lese"-Zugriffs auf den Kanal "Musicals".&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Im &lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;vorangegangenen Artikel&lt;/a&gt; wurden die "Komponenten einer Moderationslösung" beschrieben und die APIs, die sowohl dem Client als auch dem Server zur Verfügung stehen, in der folgenden Grafik aufgelistet. Die APIs, die in den obigen Schritten besprochen wurden, sind auch in dieser Grafik dargestellt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F50rOVZsxRPDbpl2azfmGCx%2F76842024f05c290e76ef9169f89994ad%2Fmoderation.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F50rOVZsxRPDbpl2azfmGCx%2F76842024f05c290e76ef9169f89994ad%2Fmoderation.png" title="How-to - BizOps Workspace Channel Monitor - Image 09" alt="Table showing components of a chat moderation solution"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Die Chat-SDK-Beispielanwendung
&lt;/h2&gt;

&lt;p&gt;Dasselbe Team, das für die Entwicklung des Channel Monitor und des Chat SDK verantwortlich ist, hat auch eine in React Native geschriebene Beispielanwendung erstellt, die das Chat SDK verwendet.&lt;/p&gt;

&lt;p&gt;Das Beispiel zeigt die Möglichkeiten des SDKs und die besten Praktiken für die Entwicklung einer realistischen und voll funktionsfähigen Chat-App mit PubNub. Es ist Open Source und Teil desselben GitHub-Repositorys, das auch das Chat-SDK unter &lt;a href="https://github.com/pubnub/js-chat/tree/master/samples/react-native-group-chat" rel="noopener noreferrer"&gt;/samples/react-native-group-chat&lt;/a&gt; enthält.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F3LN1pHPw77sxb284B3ae3d%2F51cccbcd3b841bcb5dad1d3a3f0ced49%2Ftemp-chat-sdk-mobile-demo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F3LN1pHPw77sxb284B3ae3d%2F51cccbcd3b841bcb5dad1d3a3f0ced49%2Ftemp-chat-sdk-mobile-demo.png" title="How-to - BizOps Workspace Channel Monitor - Image 02" alt="Sample app running on iOS and Android"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diese Anwendung wurde kürzlich aktualisiert, um Token von einem Access Manager Server anzufordern und ein neues Token anzufordern, wenn sich die Berechtigungen des Benutzers ändern, d.h. wenn er von Kanälen ausgeschlossen oder stummgeschaltet wird. Diese Verbesserung wurde seit dem Verfassen des &lt;a href="https://www.pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;letzten Artikels&lt;/a&gt; vorgenommen, also stellen Sie sicher, dass Sie den neuesten Quellcode von &lt;a href="https://github.com/pubnub/js-chat/tree/master/samples/react-native-group-chat" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; erhalten. Zum Zeitpunkt der Erstellung dieses Artikels lautet die neueste Git-Commit-ID &lt;a href="https://github.com/pubnub/js-chat/tree/ae9dfa0/samples/react-native-group-chat" rel="noopener noreferrer"&gt;ae9dfa0&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sicheres Stummschalten und Verbannen von Benutzern: Demo mit der Beispielanwendung
&lt;/h2&gt;

&lt;p&gt;In diesem Abschnitt wird beschrieben, wie Sie unsere End-to-End-Demo zum Laufen bringen und die sichere Moderation sowohl aus der Client- als auch aus der Serverperspektive zeigen.&lt;/p&gt;

&lt;h3&gt;
  
  
  PubNub Keyset erstellen
&lt;/h3&gt;

&lt;p&gt;Ich empfehle, ein neues PubNub Keyset zu erstellen, um diese Demo wie folgt zu starten:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Loggen Sie sich in das &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Admin Portal&lt;/a&gt; ein und erstellen Sie entweder eine neue Anwendung oder ein neues Keyset innerhalb einer bestehenden Anwendung. Bei Bedarf finden Sie eine Schritt-für-Schritt-Anleitung in unserem &lt;a href="https://www.pubnub.com/how-to/admin-portal-create-keys/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;How to Create Admin Portal Keys&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; Aktivieren Sie auf der Seite Keysets die folgenden Konfigurationsoptionen. Sofern nicht anders angegeben, können Sie die Standardeinstellungen übernehmen:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.pubnub.com/docs/general/metadata/channel-metadata?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;App-Kontext&lt;/a&gt;. Dieser speichert Metadaten über Ihre Channels und Benutzer und wird im vorherigen Artikel über&lt;a href="https://pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;"Benutzer- und Channel-Verwaltung&lt;/a&gt;" näher beschrieben. Aktivieren Sie auch &lt;code&gt;Benutzer-Metadatenereignisse&lt;/code&gt;, &lt;code&gt;Channel-Metadatenereignisse&lt;/code&gt; und &lt;code&gt;Mitgliedschaftsereignisse&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.pubnub.com/docs/general/storage?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Nachrichten-Persistenz&lt;/a&gt;. Dies speichert Ihren Nachrichtenverlauf mit PubNub, so dass der Administrator Konversationen überprüfen und bearbeiten kann.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.pubnub.com/docs/general/security/access-control?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Zugriffsmanager&lt;/a&gt;. Verhindert den unbefugten Zugriff auf Daten und ist erforderlich, um eine sichere Moderationslösung zu erstellen.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.pubnub.com/docs/general/presence/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Anwesenheit&lt;/a&gt;. Wird verwendet, um zu verfolgen, ob ein Benutzer online oder offline ist.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Speichern Sie Ihre Änderungen.&lt;/p&gt;

&lt;p&gt;Sie benötigen den &lt;code&gt;Publish Key&lt;/code&gt;, &lt;code&gt;Subscribe Key&lt;/code&gt; und &lt;code&gt;Secret Key&lt;/code&gt; in den folgenden Schritten.&lt;/p&gt;

&lt;h3&gt;
  
  
  Erstellen Sie die Beispielanwendung
&lt;/h3&gt;

&lt;p&gt;Wie bereits beschrieben, handelt es sich bei der Chat SDK-Beispielanwendung um eine plattformübergreifende Client-Anwendung, die in React Native unter Verwendung des Expo-Frameworks geschrieben wurde.&lt;/p&gt;

&lt;p&gt;Klonen und erstellen Sie die Beispielanwendung, indem Sie den Anweisungen in der &lt;a href="https://github.com/pubnub/js-chat/tree/ae9dfa0/samples/react-native-group-chat#readme" rel="noopener noreferrer"&gt;Readme-Datei der Anwendung&lt;/a&gt; folgen. Stellen Sie insbesondere sicher, dass Sie die Voraussetzungen installiert haben, einschließlich Garn und Node.js. In der ReadMe wird die Verwendung von XCode und iOS beschrieben, aber Sie können die Anwendung auch auf einem Android-Emulator ausführen. Zum Zeitpunkt der Erstellung dieses Artikels lautet die neueste Git-Commit-ID &lt;a href="https://github.com/pubnub/js-chat/tree/ae9dfa0/samples/react-native-group-chat" rel="noopener noreferrer"&gt;ae9dfa0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wenn Sie die Pub/Sub-Schlüssel bereitstellen, verwenden Sie die Schlüssel, die Sie im vorherigen Schritt erzeugt haben. Wenn Sie die Schlüssel nicht in die &lt;code&gt;.env-Datei&lt;/code&gt; aufnehmen, wird die Anwendung standardmäßig einige &lt;code&gt;Demo-Schlüssel&lt;/code&gt; verwenden; Sie können diese Logik unter &lt;a href="https://github.com/pubnub/js-chat/blob/ae9dfa0/samples/react-native-group-chat/App.tsx#L60" rel="noopener noreferrer"&gt;https://github.com/pubnub/js-chat/blob/ae9dfa0/samples/react-native-group-chat/App.tsx#L60&lt;/a&gt; deaktivieren, um Verwirrung zu vermeiden.&lt;/p&gt;

&lt;p&gt;Führen Sie die Anwendung aus. In der ReadMe werden Sie angewiesen, &lt;code&gt;yarn ios&lt;/code&gt; auszuführen, aber Sie können auch &lt;code&gt;yarn android&lt;/code&gt; oder &lt;code&gt;yarn run start&lt;/code&gt; ausführen, wobei letzteres Ihnen ein interaktives Menü bietet.&lt;/p&gt;

&lt;p&gt;Wenn Sie sich anmelden, sollten Sie die folgende Warnung in Ihrer Konsole sehen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F7jc5aAT6ohAvQdvszqUerY%2F36987e68ee4386813332e69c0d1d6ab0%2FFailed_to_obtain_auth_token.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F7jc5aAT6ohAvQdvszqUerY%2F36987e68ee4386813332e69c0d1d6ab0%2FFailed_to_obtain_auth_token.png" title="How-to - BizOps Workspace Secure Chat - Image " alt="Failed log message"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Das liegt daran, dass der Client sich nicht mit dem Access Manager Server verbinden konnte, also bauen wir ihn.&lt;/p&gt;

&lt;h3&gt;
  
  
  Erstellen Sie den Access Manager-Beispielserver
&lt;/h3&gt;

&lt;p&gt;Der Sample Access Manager Server ist unter &lt;a href="https://github.com/pubnub/js-chat/tree/master/samples/access-manager-api" rel="noopener noreferrer"&gt;https://github.com/pubnub/js-chat/tree/master/samples/access-manager-api&lt;/a&gt; zu finden &lt;a href="https://github.com/pubnub/js-chat/tree/master/samples/access-manager-api" rel="noopener noreferrer"&gt;.&lt;/a&gt; Dies ist die gleiche Monorepo wie die zuvor besprochene Client-Anwendung.&lt;/p&gt;

&lt;p&gt;Öffnen Sie die Datei &lt;code&gt;src/chatsdk.service.ts&lt;/code&gt; in einem Editor Ihrer Wahl und füllen Sie die Felder &lt;code&gt;publishKey&lt;/code&gt;, &lt;code&gt;subscribeKey&lt;/code&gt; und &lt;code&gt;secretKey&lt;/code&gt; aus. Der publishKey und der subscribeKey müssen mit den Schlüsseln übereinstimmen, die Sie zum Erstellen der Client-Anwendung verwendet haben, und der geheime Schlüssel ist auf der Keyset-Seite für die Anwendung im &lt;a href="https://admin.pubnub.com?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Admin-Portal&lt;/a&gt; verfügbar&lt;/p&gt;

&lt;p&gt;Führen Sie im Verzeichnis &lt;code&gt;REPO/samples/access-manager-api&lt;/code&gt; den Befehl &lt;code&gt;yarn run start&lt;/code&gt; aus, um den Access Manager-Server zu starten, und Sie sollten etwas wie das folgende Bild sehen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F7vrAN5Y2vD6yQKucs25iHy%2Fb8fb34f5ab9c1e75a23606c2b980cea3%2Fauth_token_server.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F7vrAN5Y2vD6yQKucs25iHy%2Fb8fb34f5ab9c1e75a23606c2b980cea3%2Fauth_token_server.png" title="How-to - BizOps Workspace Secure Chat - Image 04" alt="Sample Access Manager Server output"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Um zu sehen, was der Access-Manager-Server tut, schauen Sie sich &lt;code&gt;app.service.ts&lt;/code&gt; an. Sie sehen die für den anfragenden Benutzer generierten Berechtigungsstrukturen und den Aufruf von &lt;code&gt;chat.sdk.grantToken()&lt;/code&gt;, um diese Berechtigungen anzuwenden und den generierten authKey an den aufrufenden Client zurückzugeben.&lt;/p&gt;

&lt;p&gt;Dies sind die Berechtigungen, die die Demoanwendung benötigt, aber Ihre Anwendung wird wahrscheinlich andere Berechtigungen benötigen. Sie können diesen mitgelieferten Regelsatz als Startvorlage verwenden, aber wenn Sie den Access Manager Server für Ihre Anwendung erstellen, konsultieren Sie &lt;a href="https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/permissions?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/permissions&lt;/a&gt;, um genau zu verstehen, welche Berechtigungen von welchen Chat SDK Funktionen benötigt werden.&lt;/p&gt;

&lt;p&gt;Starten Sie die Client-Demoanwendung neu, und Sie sollten sich jetzt ohne Fehler anmelden können. Sie werden wissen, dass alles erfolgreich war, wenn Sie einen 'Authkey refreshed' Toast erhalten.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F6DXY3wSm18YpJ4K08iwoJ4%2Ff5db7a28ca9efcfcff54ddfb36369729%2Fauthkey_refreshed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F6DXY3wSm18YpJ4K08iwoJ4%2Ff5db7a28ca9efcfcff54ddfb36369729%2Fauthkey_refreshed.png" title="How-to - BizOps Workspace Secure Chat - Image 05" alt="AuthKey refreshed"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Initiieren Sie eine Unterhaltung zwischen zwei Clients.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F1VS5T3rvnRYCDK6ITsSVZG%2F63901926e457c4d9cdf1bea009921bb1%2FIn_Conversation.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F1VS5T3rvnRYCDK6ITsSVZG%2F63901926e457c4d9cdf1bea009921bb1%2FIn_Conversation.png" title="How-to - BizOps Workspace Secure Chat - Image 06" alt="Initiate a conversation between two clients"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Stummschalten und Sperren von Benutzern mit dem Channel Monitor
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Wichtig:&lt;/strong&gt; Wenn Sie noch keine Konversation zwischen zwei Clients initiiert haben, sollten Sie dies jetzt tun. Kanäle werden von der Demo-Anwendung dynamisch erstellt, so dass sie im Kanalmonitor erst angezeigt werden, wenn der Chat begonnen hat.&lt;/p&gt;

&lt;p&gt;Beachten Sie, dass alle unten gezeigten Aktualisierungen der Benutzeroberfläche, wie z. B. das Banner "Auth Key Refreshed" oder das Modal "Banned User", Teil der Demo-Anwendung sind - Ihre Anwendung wird diese Informationen dem Benutzer über ihre eigene Benutzeroberfläche anzeigen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Starten Sie den Channel Monitor, indem Sie sich im &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Admin-Portal&lt;/a&gt; anmelden und das Keyset auswählen, das Sie für das Access Manager-Beispiel und die Client-Anwendung verwendet haben.&lt;/li&gt;
&lt;li&gt;  Gehen Sie zum Abschnitt &lt;strong&gt;BizOps Workspace&lt;/strong&gt; im linken Navigationsbereich und wählen Sie &lt;strong&gt;Channel Monitor&lt;/strong&gt;. Wenn Sie den Abschnitt BizOps &lt;strong&gt;Workspace&lt;/strong&gt; nicht sehen, müssen Sie höchstwahrscheinlich ein Upgrade Ihres &lt;a href="https://www.pubnub.com/pricing/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Tarifs&lt;/a&gt; durchführen, aber bitte &lt;a href="https://support.pubnub.com/hc/en-us?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;kontaktieren Sie unseren Support&lt;/a&gt;, wenn Sie Probleme haben.&lt;/li&gt;
&lt;li&gt;  Sie werden aufgefordert, Ihre Channels auszuwählen, um die Moderation zu starten. Der Name des Channels lautet &lt;code&gt;1:1 Benutzer mit USER_ID&lt;/code&gt;, wobei USER_ID der Benutzername der Person ist, die die Unterhaltung initiiert hat.&lt;/li&gt;
&lt;li&gt;  Die Kanalnachrichten werden in Echtzeit angezeigt, einschließlich früherer Nachrichten, wenn Sie die Persistenz auf Ihrem Keyset aktiviert haben.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F3bjU02EMdQk4dwYcgaAS0d%2F6dd2b2b1c9b7be3e8fef76ca8306b8db%2F1._Channel_Monitor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F3bjU02EMdQk4dwYcgaAS0d%2F6dd2b2b1c9b7be3e8fef76ca8306b8db%2F1._Channel_Monitor.png" title="How-to - BizOps Workspace Secure Chat - Image 07" alt="Initial conversation with channel monitor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Schalten Sie den Benutzer stumm, indem Sie die Mikrofontaste neben einer von diesem Benutzer gesendeten Nachricht drücken. Auf dem Gerät des stummgeschalteten Benutzers wird eine Nachricht angezeigt, die besagt, dass der Authentifizierungsschlüssel erneuert wurde. Wenn Sie versuchen, eine Nachricht als stummer Benutzer zu senden, wird eine Meldung angezeigt, die besagt, dass dies verboten ist, obwohl der stummgeschaltete Benutzer davon nicht betroffen ist.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F1RdO4jGGHDiSiL4Qq7TReO%2F0d924dae0e07f5b4ac0f5c3ef5dc11cd%2F2._Muted_User.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F1RdO4jGGHDiSiL4Qq7TReO%2F0d924dae0e07f5b4ac0f5c3ef5dc11cd%2F2._Muted_User.png" title="How-to - BizOps Workspace Secure Chat - Image 08" alt="Muted user"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Heben Sie die Stummschaltung des Benutzers auf, indem Sie die Mikrofontaste erneut drücken. Auf dem Gerät des stummgeschalteten Benutzers wird eine Nachricht angezeigt, die Sie darüber informiert, dass der Authentifizierungsschlüssel aktualisiert wurde und das Senden von Nachrichten nun möglich ist.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F58g7AQjJ7pRqc3eoV8RB49%2F428d3ca094f369bc1f4fa592eeb53589%2F3._Unmuted_User.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F58g7AQjJ7pRqc3eoV8RB49%2F428d3ca094f369bc1f4fa592eeb53589%2F3._Unmuted_User.png" title="How-to - BizOps Workspace Secure Chat - Image 09" alt="User unmuted"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Sperren Sie den Benutzer, indem Sie auf die Schaltfläche "Sperren" neben der von diesem Benutzer gesendeten Nachricht drücken und einen Sperrgrund angeben. Der Grund ist ein Freitext, so dass Sie alle relevanten Informationen angeben können. Der Authentifizierungsschlüssel wird aktualisiert und der Benutzer kehrt zum Chat-Auswahlbildschirm in seiner App zurück.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F5ZaHnr78P2KEkPnb71RbGU%2F90d13bab4b2e144b0582ec58cdcb7bf0%2F4._Banned_User.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F5ZaHnr78P2KEkPnb71RbGU%2F90d13bab4b2e144b0582ec58cdcb7bf0%2F4._Banned_User.png" title="How-to - BizOps Workspace Secure Chat - Image 10" alt="User is banned"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beim Versuch, auf den gesperrten Kanal zuzugreifen, wird dem Benutzer eine Fehlermeldung angezeigt:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F2eyswSTv0uMNS6SedvR0Ea%2F68c0f54239a1283c7fc56e7a9df765d7%2F5._Banned_User_error.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F2eyswSTv0uMNS6SedvR0Ea%2F68c0f54239a1283c7fc56e7a9df765d7%2F5._Banned_User_error.png" title="How-to - BizOps Workspace Secure Chat - Image 11" alt="Banned user error message"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Heben Sie die Sperre des Benutzers auf, indem Sie im Channel-Monitor "Sperre aufheben" wählen. Der Authentifizierungsschlüssel wird aktualisiert. Die Sperre wird aufgehoben und der Benutzer kann wieder auf den Chat zugreifen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F3L0k1itC0X4yHApaWxohJU%2F340c12f4a84503a165f3b98904e0aaa0%2F6_Unbanned_User_2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2F3L0k1itC0X4yHApaWxohJU%2F340c12f4a84503a165f3b98904e0aaa0%2F6_Unbanned_User_2.png" title="How-to - BizOps Workspace Secure Chat - Image 12" alt="User is unbanned"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Zusammenfassung
&lt;/h2&gt;

&lt;p&gt;Die Entwicklung einer &lt;a href="https://www.pubnub.com/solutions/chat/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Chat-Anwendung&lt;/a&gt; ist nur der erste Schritt. Die schwierigsten Herausforderungen kommen nach der Bereitstellung der Anwendung, um Ihre wachsende Benutzerbasis zu unterstützen. BizOps Workspace ist eine Reihe von Tools, die für die Verwaltung aller Aspekte Ihrer Chat-Anwendung entwickelt wurden und die Herausforderungen nach der Einführung vereinfachen.&lt;/p&gt;

&lt;p&gt;Obwohl sich dieser Artikel auf das sichere Stummschalten und Sperren von Benutzern konzentriert hat, werden wir die Funktionen von &lt;a href="https://pubnub.com/docs/bizops-workspace/basics?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;BizOps Workspace&lt;/a&gt; weiter ausbauen. Dieser Artikel hat sich auch ausschließlich auf das Chat SDK konzentriert, aber der Channel Monitor kann auch so &lt;a href="https://www.pubnub.com/docs/bizops-workspace/basics#configuration?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;konfiguriert werden&lt;/a&gt;, dass er mit jedem unserer SDKs funktioniert.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2FFYH6PoZLSHGPgvikC9vCd%2Fe74f82e37fbfb7fe6f370594adf1da7f%2FChannel_Monitor_Configuration.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.pubnub.com%2Fcdn%2F3prze68gbwl1%2FFYH6PoZLSHGPgvikC9vCd%2Fe74f82e37fbfb7fe6f370594adf1da7f%2FChannel_Monitor_Configuration.png" title="How-to - BizOps Workspace Channel Monitor - Image 00" alt="Channel monitor configuration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wenn Sie Hilfe oder Unterstützung benötigen, wenden Sie sich bitte an unser &lt;a href="https://support.pubnub.com/hc/en-us?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;engagiertes Support-Team&lt;/a&gt; oder senden Sie eine E-Mail an unser Developer Relations Team unter &lt;a href="//mailto:devrel@pubnub.com"&gt;devrel@pubnub.com&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wie kann PubNub Ihnen helfen?
&lt;/h1&gt;

&lt;p&gt;Dieser Artikel wurde ursprünglich auf &lt;a href="https://www.pubnub.com/how-to/securely-moderate-chat-and-users/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub.com&lt;/a&gt; veröffentlicht.&lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  PubNub erleben
&lt;/h2&gt;

&lt;p&gt;Sehen Sie sich die &lt;a href="https://www.pubnub.com/tour/introduction/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;Live Tour&lt;/a&gt; an, um in weniger als 5 Minuten die grundlegenden Konzepte hinter jeder PubNub-gestützten App zu verstehen&lt;/p&gt;

&lt;h2&gt;
  
  
  Einrichten
&lt;/h2&gt;

&lt;p&gt;Melden Sie sich für einen &lt;a href="https://admin.pubnub.com/signup/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Account&lt;/a&gt; an und erhalten Sie sofort kostenlosen Zugang zu den PubNub-Schlüsseln&lt;/p&gt;

&lt;h2&gt;
  
  
  Beginnen Sie
&lt;/h2&gt;

&lt;p&gt;Mit den &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;PubNub-Dokumenten&lt;/a&gt; können Sie sofort loslegen, unabhängig von Ihrem Anwendungsfall oder &lt;a href="https://www.pubnub.com/docs?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de" rel="noopener noreferrer"&gt;SDK&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hinzufügen von Echtzeit-Chat zu Ihrem Unity-Spiel</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Thu, 16 May 2024 21:24:52 +0000</pubDate>
      <link>https://forem.com/pubnub-de/hinzufugen-von-echtzeit-chat-zu-ihrem-unity-spiel-26ij</link>
      <guid>https://forem.com/pubnub-de/hinzufugen-von-echtzeit-chat-zu-ihrem-unity-spiel-26ij</guid>
      <description>&lt;p&gt;Echtzeit-Chat oder In-Game-Chat erhöht das Engagement der Spieler und fördert die Benutzerbindung. Der Echtzeit-Chat ermöglicht es den Spielern, miteinander zu kommunizieren, fördert das Gemeinschaftsgefühl und bietet eine Plattform für soziale Interaktion, die das Spielerlebnis noch angenehmer macht.&lt;/p&gt;

&lt;p&gt;Die Einführung eines Echtzeit-Chats ist leichter gesagt als getan. Wenn man bei Null anfängt, braucht man eine Menge Ressourcen, um es aufzubauen, zu warten und zu skalieren, wenn die Spielerzahl steigt. Zum Glück ist es mit PubNub einfacher denn je, Echtzeitfunktionen in Unity-Spiele einzubauen - mit unserer Echtzeit-API-Plattform mit niedriger Latenz. Ganz gleich, ob Sie für Windows, Mac, iOS, Android, Virtual Reality-Systeme wie Oculus und Meta Quest oder plattformübergreifend entwickeln, unser &lt;a href="https://www.pubnub.com/docs/sdks/unity?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Unity-SDK&lt;/a&gt; bietet Ihnen alles.&lt;/p&gt;

&lt;p&gt;Lesen Sie weiter, um zu erfahren, wie Sie mit PubNub einen Echtzeit-Chat zu Ihrem Unity-Videospiel hinzufügen können. Sie erfahren, wie Sie verschiedene Kanalmuster einrichten, wie Sie Nachrichten senden und empfangen und wie Sie Ihren Chat im Spiel mit anderen Funktionen wie Moderation, Emojis, Reaktionen und GIFs verbessern und absichern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Erste Schritte mit PubNub
&lt;/h2&gt;

&lt;p&gt;Bevor du mit der Einrichtung deines Ingame-Chats beginnst, musst du die PubNub-Plattform verstehen und wissen, wie du deine Anwendung konfigurierst, um die Funktionen der Plattform zu nutzen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Überblick
&lt;/h3&gt;

&lt;p&gt;PubNub basiert auf dem Pub/Sub (Publish/Subscribe) Modell. Ein Benutzer &lt;a href="https://www.pubnub.com/docs/general/messages/publish?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;veröffentlicht&lt;/a&gt; eine Nachricht, die im Wesentlichen eine Nutzlast ist, die alle relevanten Informationen enthält, im PubNub-Netzwerk. Benutzer, die die Nachricht empfangen oder anhören wollen, &lt;a href="https://www.pubnub.com/docs/general/messages/receive?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;abonnieren&lt;/a&gt; das PubNub-Netzwerk und analysieren die Nachricht. Die Nachricht kann alles Mögliche enthalten, solange sie weniger als 32 KB groß ist (und vorzugsweise in JSON).&lt;/p&gt;

&lt;p&gt;Um sicherzustellen, dass die Nachricht an die richtigen Empfänger gelangt, werden &lt;a href="https://www.pubnub.com/docs/general/channels/overview?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Kanäle&lt;/a&gt; als Mechanismus verwendet, über den die Daten von einem Gerät zum anderen übertragen werden. Kanäle werden jedes Mal benötigt, wenn ein Gerät im PubNub-Netzwerk veröffentlichen und abonnieren möchte. Während ein Benutzer immer nur eine Nachricht veröffentlichen kann, kann ein Benutzer viele verschiedene Kanäle gleichzeitig abonnieren und so auf eine Reihe von Nachrichten warten.&lt;/p&gt;

&lt;p&gt;Während Sie den genauen Kanalnamen angeben müssen, wenn Sie eine Nachricht veröffentlichen, können Sie mehrere Kanäle gleichzeitig über &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#channel-multiplexing?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Multiplexing&lt;/a&gt; abonnieren, d. h. Sie abonnieren einen oder mehrere Kanäle, indem Sie die Kanalnamen als Array von Strings angeben.&lt;/p&gt;

&lt;p&gt;Warum ist diese Information notwendig? Dein gesamtes Nachrichtensystem im Spiel wird auf dem Konzept der Channels basieren: &lt;em&gt;Wie du deinen Channel-Musternamen formatierst und sicherst, bestimmt, welche Art von Chat du willst&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installieren und konfigurieren Sie das PubNub Unity SDK
&lt;/h3&gt;

&lt;p&gt;Zu Beginn müssen Sie das PubNub Unity SDK konfigurieren, um Ihre Anwendung mit dem PubNub-Netzwerk zu verbinden. Bitte lesen Sie die &lt;a href="https://www.pubnub.com/docs/sdks/unity?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Unity SDK-Dokumentation&lt;/a&gt; für alle Details, aber als Überblick müssen Sie Folgendes tun:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Fügen Sie das Unity-Paket über den &lt;a href="https://www.pubnub.com/docs/sdks/unity#install-via-package-manager?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Paketmanager&lt;/a&gt; hinzu.&lt;/li&gt;
&lt;li&gt; Erstellen Sie ein &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;kostenloses PubNub-Konto&lt;/a&gt; und erhalten Sie Ihre PubNub-Keys. Es ist wichtig, dass Sie die Funktionen in Ihrem Keyset aktivieren, die Ihre Anwendung benötigt - für die wesentliche Pub/Sub-Funktionalität müssen Sie lediglich den Stream Controller aktivieren. Alle anderen Einstellungen, die Sie für erweiterte Funktionen konfigurieren müssen, werden wir natürlich auch behandeln.&lt;/li&gt;
&lt;li&gt; Geben Sie Unity die Publish- und Subscribe-Keys, die Sie im vorherigen Schritt erhalten haben, um das PubNub GameObject &lt;a href="https://www.pubnub.com/docs/sdks/unity#configure-pubnub?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;zu konfigurieren&lt;/a&gt;. Du solltest auch eine UserId angeben, da jedes PubNub-Objekt einen eindeutigen Identifikator benötigt, um eine Verbindung zu PubNub herzustellen. Danach initialisieren Sie das PubNub-Objekt:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;PubnubApi&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;using&lt;/span&gt; &lt;span class="nx"&gt;PubnubApi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Unity&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;…&lt;/span&gt;
&lt;span class="nx"&gt;PubNub&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Pubnub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pnConfiguration&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt; Fügen Sie &lt;a href="https://www.pubnub.com/docs/sdks/unity#add-event-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Ereignis-Listener&lt;/a&gt; für Ihr Spiel hinzu, um auf Ereignisse und Nachrichten zu reagieren. Es gibt verschiedene Ereignis-Listener, um eine eigene Logik zu implementieren, die auf jede Art von Nachricht oder Ereignis reagiert, aber für die Kernfunktionalität des Austauschs von Chat-Nachrichten benötigen Sie lediglich den Nachrichten-Ereignis-Listener (Sie werden später in diesem Leitfaden lernen, wie Sie Ihrem Echtzeit-Chat zusätzliche Funktionen hinzufügen können, um ihn interessanter zu gestalten):
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;listener&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;SubscribeCallbackListener&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;AddListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onMessage&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;OnPnMessage&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;…&lt;/span&gt;
&lt;span class="kr"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nc"&gt;OnPnMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Pubnub&lt;/span&gt; &lt;span class="nx"&gt;pn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;PNMessageResult&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;object&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Message received: {result.Message}&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bevor Sie mit dem Veröffentlichen beginnen können, um Nachrichten an andere Geräte zu senden, und mit dem Abonnieren, um Nachrichten von den Veröffentlichern zu erhalten, müssen Sie den Namen Ihres Kanals festlegen. Denken Sie daran: Wie Sie Ihr Kanalmuster formatieren, bestimmt, welche Art von Chat Sie implementieren möchten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Definieren verschiedener Chat-Muster
&lt;/h2&gt;

&lt;p&gt;Sie müssen sich überlegen, welche Arten von Chat Sie für Ihr Spiel implementieren wollen. In diesem Abschnitt geht es um das Muster, dem der Kanal folgen sollte, und nicht um die gesamte Einrichtung, um die erforderlichen Informationen von Ihrem Spiel oder Ihren Benutzern zu erhalten. Wenn Sie die verschiedenen Chat-Muster in einem Unity-Projekt sehen möchten, das PubNub verwendet, schauen Sie sich unser &lt;a href="https://github.com/PubNubDevelopers/unity-multiplayer-shooter"&gt;Unity Showcase Game&lt;/a&gt; an.&lt;/p&gt;

&lt;h3&gt;
  
  
  All/Global Chat
&lt;/h3&gt;

&lt;p&gt;Der All- oder Global-Chat ermöglicht die Kommunikation zwischen allen Spielern in einem Spiel. Du kannst einen allgemeinen Chat einrichten, indem du Nachrichten in einem gemeinsamen Kanal veröffentlichst und abonnierst, den alle Spieler abonniert haben. Sie können die Channel-Struktur für globale Spieler einrichten:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;allChat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nb"&gt;global&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jeder Client abonniert dann den Kanal und stellt sicher, dass alle Spieler dieselben Nachrichten in Echtzeit erhalten, wodurch ein gemeinsames Chaterlebnis entsteht, an dem alle Spieler teilnehmen können.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privater/Flüster-Chat
&lt;/h3&gt;

&lt;p&gt;Der Privat- oder Flüster-Chat ermöglicht es den Spielern, persönliche Unterhaltungen zu führen, bei denen nur die beiden beteiligten Spieler miteinander chatten können und niemand sonst. Bei einem Privat- oder Flüster-Chat-Channel-Muster würde jeder Benutzer eine Channel-Struktur abonnieren, die für private Unterhaltungen vorgesehen ist:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;privateChatBase&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kr"&gt;private&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dabei wird das Konzept des &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#wildcard-subscribe?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Wildcard-Abonnements&lt;/a&gt; verwendet. Diese Funktion kann verwendet werden, um eine hierarchische Liste von Channels zu abonnieren, wobei Sie mit einer einzigen Namensangabe viele Channels abonnieren können.&lt;/p&gt;

&lt;p&gt;Wenn ein Benutzer beispielsweise eine private Nachricht an einen anderen Benutzer senden möchte, würde man die aktuelle PubNub-Benutzer-ID (oder UUID/uuid), die den eindeutigen Identifikator des Benutzers im PubNub-Netzwerk darstellt, mit der Benutzer-ID des beabsichtigten Empfängers der Nachricht verknüpfen. Während Sie die Benutzer-ID des aktuellen Benutzers immer abrufen können (über pubnub.GetCurrentUserId()), müssen Sie die Benutzer-ID des Empfängers abfragen. Sobald Sie die Benutzer-ID des Empfängers haben, können Sie den Kanal wie folgt verketten:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;privateChatMessage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kr"&gt;private&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;uuid&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;uuid&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Da Sie ein Platzhalter-Kanalmuster wie chat.private.* angeben, wird Ihre Anwendung alle Kanalnamen abonnieren, die diesem Muster entsprechen. Dadurch wird sichergestellt, dass Sie den Kanalnamen zur Laufzeit nicht immer kennen müssen. Schließlich wird durch die Verwendung der Benutzer-IDs sichergestellt, dass der Kanalname eindeutig ist und die Unterhaltung zwischen den beiden Benutzern bleibt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Freund/Buddy-Chat
&lt;/h3&gt;

&lt;p&gt;Mit einem Freundschafts- oder Buddy-Chat können Spieler privat mit bestimmten Spielern kommunizieren, mit denen sie eine engere Beziehung aufbauen möchten, egal ob es sich um neu kennengelernte Spieler oder um Freunde außerhalb des Spiels handelt.&lt;/p&gt;

&lt;p&gt;In einem Freundes-/Buddy-Chat müssen Sie ein Kanalmuster erstellen, das für jedes Gerät oder jeden Spieler eindeutig ist, ähnlich wie Sie das Kanalmuster für den privaten Chat erstellen würden, indem Sie Ihre Benutzer-ID anhängen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;chanFriendChat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;chat.friends.” + pubnub.GetCurrentUserId();”
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dies wiederholst du dann für jeden Benutzer, mit dem du befreundet sein möchtest - du ersetzt ihre Benutzer-IDs in der chanFriendChat-Zeichenfolge durch die von pubnub.GetCurrentUserId(). Obwohl das Channel-Muster nun vorhanden ist, kann man sich nicht einfach mit einem Wildcard-Muster wie chat.friends.* anmelden; stattdessen braucht man einen Mechanismus, um festzustellen, welche Spieler Freunde sind.&lt;/p&gt;

&lt;p&gt;Eine Lösung für dieses Problem sind die &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#channel-groups?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Channel Groups&lt;/a&gt; von PubNub, mit denen man eine große Anzahl von Channels auf einmal verwalten kann. Channel Groups sind im Wesentlichen ein Zeiger auf eine Liste von Channels; in diesem Fall ist die Channel Group eindeutig für den Spieler und enthält einen Verweis auf alle Freunde des Spielers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;chanGroupFriendChat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;chanGroupFriendChat_&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GetCurrentUserId&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hinweis: Die Namen der Kanalgruppen folgen den gleichen Konventionen wie die Namen der Kanäle, sie &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#channel-group-names?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;können&lt;/a&gt; jedoch &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#channel-group-names?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;keine Punkte&lt;/a&gt; in ihrem Namen &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#channel-group-names?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;enthalten&lt;/a&gt;, daher der Unterschied in der Musterstruktur.&lt;/p&gt;

&lt;p&gt;Ähnlich wie beim Abonnieren von Kanälen mit dem pubnub-Objekt (wird im nächsten Abschnitt erläutert) können Sie auch gleichzeitig Kanalgruppen abonnieren. Da der Spieler die Channel-Gruppe seines Freundes abonniert hat, wird jedes Mal, wenn ein neuer Freund hinzugefügt wird, der chanFriendChat dieses Freundes zur Friend-Channel-Gruppe des Spielers hinzugefügt und erhält Nachrichten im Message-Ereignis-Listener, sobald einer dieser Channels eine Nachricht veröffentlicht. Sie können zwar nicht in einer Kanalgruppe veröffentlichen, aber Sie können einfach eine Nachricht in einem der angeschlossenen Kanäle innerhalb der Kanalgruppe veröffentlichen, und jeder Abonnent (Freund) würde diese Nachricht erhalten.&lt;/p&gt;

&lt;p&gt;Mit der &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/channel-groups?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Channel Groups API für das PubNub Unity SDK&lt;/a&gt; können Sie Freunde/Kanäle zu Channel Groups hinzufügen, auflisten und entfernen, wenn Sie die Berechtigung dazu haben. Die Channel-Gruppen-Funktion wird auch verwendet, um zu bestimmen, wann Freunde online/offline sind, was als Präsenz bezeichnet wird. Dies wird in unserer detaillierten Anleitung &lt;a href="https://www.pubnub.com/how-to/add-friend-list-to-your-unity-game/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;zum Hinzufügen einer Freundesliste in Unity&lt;/a&gt; ausführlich behandelt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gilden-/Allianz-/Clan-Chat
&lt;/h3&gt;

&lt;p&gt;In Spielen, die Gilden, Allianzen oder Clans beinhalten, kann eine spezielle Chat-Umgebung die Teamkoordination und Kameradschaft stark fördern. Diese Art des Gruppenchats ermöglicht die Kommunikation zwischen mehreren Benutzern und fördert die Zusammenarbeit und das Teamwork unter einer größeren Anzahl von Spielern als nur Ihren Freunden. Ein Gilden-/Bündnis-/Clan-Chat ermöglicht es den Mitgliedern einer Gruppe, Strategien zu planen, Errungenschaften auszutauschen oder sich einfach zusammenzuschließen, um eine persönlichere Gemeinschaft innerhalb des Spiels zu bilden.&lt;/p&gt;

&lt;p&gt;Die Einrichtung eines solchen Chats mit PubNub erfolgt nach demselben Konzept wie die Einrichtung eines Freundes-/Buddy-Chats. Du erstellst Channel-Gruppen für jeden Typ, abonnierst diese Channel-Gruppen und fügst Freunde zu diesen Channel-Gruppen hinzu, wenn sie dazu berechtigt sind. Alle Nachrichten, die in einem mit diesen Channel-Gruppen verbundenen Channel veröffentlicht werden, lösen den Event-Listener aus und Sie können den Chat entsprechend anzeigen.&lt;/p&gt;

&lt;p&gt;Kanalgruppen sind eine großartige Möglichkeit, große Gruppen zu verwalten, da die Kanalgruppe eines Spielers &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#channel-groups?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;2000 Kanäle&lt;/a&gt; (in diesem Fall Spieler) &lt;a href="https://www.pubnub.com/docs/general/channels/subscribe#channel-groups?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;verwalten&lt;/a&gt; kann, was selbst für die größten Gilden in Massive Online Games mehr als ausreichend ist. Noch besser ist, dass jeder einzelne Client, der mit dem PubNub-Netzwerk verbunden ist, 10 Channel Groups haben kann, was bedeutet, dass du bei Bedarf Zugang zu 20.000 Channels hast.&lt;/p&gt;

&lt;h3&gt;
  
  
  Party-/Lobby-Chat
&lt;/h3&gt;

&lt;p&gt;Party- oder Lobby-Chats sind für kleine, zeitlich begrenzte Gruppen gedacht, die für eine bestimmte Spielsitzung oder Mission gebildet werden. Obwohl diese Chatarten für unterschiedliche Zwecke gedacht sind, ähnelt ihre Implementierung dem Muster für die Erstellung eines privaten/geflüsterten Chatkanals.&lt;/p&gt;

&lt;p&gt;Erstellen Sie zunächst eine Basiszeichenkette für jede Art von Gruppenchat. Wenn Sie Ihr Array von Kanälen abonnieren (im nächsten Schritt besprochen), verwenden Sie einen Platzhalter, um auf alle Anfragen zu hören:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;chanChatParty&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;party&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;chanChatLobby&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;lobby&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn die Lobby oder Gruppe gebildet wird, wird ein Spieler als Anführer oder Besitzer der Gruppe bestimmt, unabhängig davon, ob er die Gruppe initiiert hat oder ob er aufgrund seiner Internetverbindung und Region bestimmt wurde. Diese Art von Spielern werden Gruppenleiter oder Gastgeber genannt. Sie würden dann die Benutzer-ID des Host-Spielers mit einer Basiszeichenkette verketten und so ein eindeutiges Kanalmuster erstellen. Jeder neue Spieler, der eingeladen wird, der Gruppe oder der Lobby beizutreten, abonniert diese Channels dynamisch, so dass er effektiv der Gruppe beitritt. Der Channel kann dann gelöscht werden, wenn die Party oder Lobby beendet oder aufgelöst wurde.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alles zusammenfügen
&lt;/h2&gt;

&lt;p&gt;Sobald Sie festgelegt haben, welche Chat-Typen Sie auf der Grundlage des Kanalmusters in Ihr Spiel implementieren möchten, ist es an der Zeit, Nachrichten in Echtzeit zu senden und zu empfangen, indem Sie diese Kanäle veröffentlichen und abonnieren.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nachrichten veröffentlichen
&lt;/h3&gt;

&lt;p&gt;Der Prozess beginnt mit der Erstellung des Nachrichteninhalts. Dies kann ein einfacher Text-Chat oder eine komplexere Datenstruktur sein, je nach den Anforderungen Ihres Unity-Spiels. Sobald die Nutzlast fertig ist, ist es an der Zeit, die Nachricht zu veröffentlichen.&lt;/p&gt;

&lt;p&gt;Die &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/publish-and-subscribe#publish?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Publish-API&lt;/a&gt; wird verwendet, um eine Nachricht an alle Abonnenten des angegebenen Chat-Kanals zu senden. Obwohl Sie nur einen Kanal gleichzeitig veröffentlichen können, wird die Veröffentlichung asynchron durchgeführt, so dass der Rest Ihres Codes nicht blockiert wird (obwohl Sie auch synchron veröffentlichen können, wenn Sie möchten).&lt;/p&gt;

&lt;p&gt;Wenn Sie zum Beispiel eine Chat-Nachricht an den Teilnehmer senden möchten, würden Sie den folgenden Aufruf machen, um nicht nur zu veröffentlichen, sondern auch festzustellen, ob der PubNub-Aufruf erfolgreich war (und zu behandeln, wenn der Aufruf fehlgeschlagen ist):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;PNResult&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;PNPublishResult&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;publishResponse&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Publish&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="nx"&gt;Ready&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt; &lt;span class="nx"&gt;go&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chanChatParty&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ExecuteAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;PNPublishResult&lt;/span&gt; &lt;span class="nx"&gt;publishResult&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;publishResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;PNStatus&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;publishResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Status&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pub timetoken: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;publishResult&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Timetoken&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="nx"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pub status code : &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;StatusCode&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Abonnieren von Nachrichten
&lt;/h3&gt;

&lt;p&gt;Wenn Nachrichten veröffentlicht werden, müssen wir die entsprechenden Kanäle &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/publish-and-subscribe#receive-messages?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;abonnieren&lt;/a&gt;, um alle eingehenden Nachrichten und Ereignisse zu empfangen. Sie können mehrere Chat-Kanäle und Kanalgruppen mit einem einzigen Aufruf abonnieren:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Subscribe&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Channels&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;chanChatAll&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;chanPrivateChat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;chanChatParty&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;chanChatLobby&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;               
&lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ChannelGroups&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;chanFriendGroupChat&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;chanGuildGroupChat&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;chanAllianceGroupChat&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Execute&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Der Player ist nun mit dem PubNub-Netzwerk verbunden, und die &lt;a href="https://www.pubnub.com/docs/sdks/unity#add-event-listeners?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Ereignis-Listener&lt;/a&gt; warten auf das Eintreten eines Ereignisses - in diesem Fall das Eintreffen einer neuen Nachricht - und führen dann den mit diesem Ereignis verbundenen Code aus.&lt;/p&gt;

&lt;p&gt;Wenn eine Nachricht eintrifft, löst der Listener einen Callback aus und führt den Code aus, den Sie für die Behandlung eingehender Nachrichten geschrieben haben. Das kann so einfach sein wie die Anzeige der Nachricht in einem Chatraum oder etwas Komplexeres wie das Auslösen von Ereignissen im Spiel auf der Grundlage von Chatnachrichten.&lt;/p&gt;

&lt;h2&gt;
  
  
  Erweiterte Funktionen, um den Chat im Spiel fesselnd zu gestalten
&lt;/h2&gt;

&lt;p&gt;Gute Arbeit - Sie haben erfolgreich einen In-Game-Chat in Ihr Unity-Spiel implementiert, über den die Spieler Nachrichten in Echtzeit senden und empfangen können! Die implementierte Funktionalität ist jedoch nur die Spitze des Eisbergs - es gibt noch viele weitere Funktionen, die Sie implementieren sollten, um den Chat im Spiel für Ihre Spieler noch interessanter zu machen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nachrichtenverlauf laden: Persistenz von Nachrichten
&lt;/h3&gt;

&lt;p&gt;In einem Spiel kann es vorkommen, dass Spieler frühere Unterhaltungen nachlesen oder verpasste Chats nachholen müssen. Hier kommt die &lt;a href="https://www.pubnub.com/docs/general/storage?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Message Persistence&lt;/a&gt; ins Spiel, die es ermöglicht, den Verlauf von Chat-Nachrichten zu speichern und abzurufen. Durch die Implementierung der Message Persistence-API in Ihrem Unity-Spiel können Sie Chat-Nachrichten, Nachrichtenaktionen und Dateien bei Bedarf speichern und abrufen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;PNResult&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;PNFetchHistoryResult&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;fetchHistoryResponse&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;FetchHistory&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Channels&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;chanPrivateChat&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;IncludeMeta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;MaximumPerChannel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ExecuteAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wir bieten auch die Flexibilität zu kontrollieren, wie lange Nachrichten gespeichert werden, so dass Sie die Speicherung basierend auf den spezifischen Bedürfnissen und Ressourcen Ihres Spiels verwalten können. Um die Nachrichtenpersistenz nutzen zu können, müssen Sie die Funktion im &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Admin-Portal&lt;/a&gt; für Ihre Schlüssel aktivieren. Weitere Informationen zu dieser Funktion und wie Sie sie aktivieren können, finden Sie in unserer &lt;a href="https://www.pubnub.com/how-to/admin-portal-persistence/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Anleitung zur Nachrichtenaufbewahrung&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spieler über verpasste Nachrichten benachrichtigen: Mobile Push-Benachrichtigungen
&lt;/h3&gt;

&lt;p&gt;Bei mobilen Spielen kann es vorkommen, dass Spieler die App immer wieder verlassen und wichtige Nachrichten von ihrem Team oder Aktualisierungen des Spiels verpassen. Hier kommen die &lt;a href="https://www.pubnub.com/docs/general/push/send?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;mobilen Push-Benachrichtigungen&lt;/a&gt; ins Spiel. Sie bieten eine Möglichkeit, Spieler über verpasste Chat-Nachrichten, Spiel-Updates oder andere wichtige Benachrichtigungen zu informieren, auch wenn sie nicht aktiv im Spiel sind.&lt;/p&gt;

&lt;p&gt;Mit der &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/mobile-push?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;API für mobile Push-Benachrichtigungen&lt;/a&gt; bieten wir eine einheitliche API, um Push-Benachrichtigungen sowohl an iOS- als auch an Android-Geräte zu senden. Dies vereinfacht den Prozess und ermöglicht es Ihnen, einen einzigen API-Aufruf zu senden, um alle Geräte zu benachrichtigen, unabhängig von der Plattform. Sie können Ihre Push-Benachrichtigungen auch individuell anpassen, z. B. personalisierte Benachrichtigungen an einzelne Spieler senden oder eine Nachricht an alle Spieler senden. Dank dieser Flexibilität können Sie effektiv mit Ihren Spielern kommunizieren und sie auf dem Laufenden halten.&lt;/p&gt;

&lt;p&gt;Um Mobile Push-Benachrichtigungen mit PubNub nutzen zu können, müssen Sie Mobile Push-Benachrichtigungen aktivieren, indem Sie unserer &lt;a href="https://www.pubnub.com/how-to/push-notifications/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Anleitung&lt;/a&gt; im &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Admin-Portal&lt;/a&gt; folgen. Wir haben auch spezifischere, detaillierte Anleitungen für &lt;a href="https://www.pubnub.com/how-to/admin-portal-push-notifications-android/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;FCM&lt;/a&gt; und &lt;a href="https://www.pubnub.com/how-to/admin-portal-push-notifications-apns/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;APNs&lt;/a&gt; Mobile Push-Benachrichtigungen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mehr als nur Worte: Emojis
&lt;/h3&gt;

&lt;p&gt;Emojis dienen als universelle Sprache der Gefühle in der digitalen Kommunikation. Sie ermöglichen es den Spielern, ihre Gefühle und Reaktionen auf eine lustige und farbenfrohe Weise auszudrücken und machen den Chat interaktiver und ansprechender.&lt;/p&gt;

&lt;p&gt;Mit PubNub können Sie Emoji-Unterstützung ganz einfach in Ihr Unity-Spiel implementieren, indem Sie die Spieler &lt;a href="https://www.pubnub.com/docs/general/messages/publish#send-signals?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Signale&lt;/a&gt; statt Nachrichten veröffentlichen lassen. Signale sind für das Senden von kleinen Datenmengen gedacht, da sie viel schneller und billiger zu senden sind als Nachrichten. Da Emojis in der Regel sehr kleine Datenmengen enthalten, ist dies der perfekte Weg, um die Daten schnell zu senden.&lt;/p&gt;

&lt;p&gt;Sie können die &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/publish-and-subscribe#signal?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Signals API von PubNub&lt;/a&gt; verwenden, um Emojis in einem bestimmten Chat zu veröffentlichen. Wenn ein Spieler zum Beispiel ein winkendes Emoji an den globalen Chat senden möchte, wird der folgende Code ausgeführt, wenn er auf Senden drückt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;Dictionary&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;myMessage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Dictionary&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;myMessage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;emoji&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;:wave:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Signal&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;myMessage&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;global&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Execute&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ErrorData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Information&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Timetoken&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Die Spieler, die als Empfänger vorgesehen sind, erhalten das Signal, wenn sie den angegebenen Kanal abonniert haben. Da es sich in diesem Fall um den globalen Kanal handelt, würde jeder das Emoji erhalten. Um auf Signale warten zu können, müssen Sie das Ereignis "Listener" abonnieren:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onSignal&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;OnPnSignal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kr"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nc"&gt;OnPnSignal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Pubnub&lt;/span&gt; &lt;span class="nx"&gt;pn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;PNSignalResult&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;object&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Handle the emoji by looking up the value and displaying the result.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sie müssen sicherstellen, dass der Wert des Emojis ein tatsächliches Emoji darstellt, das in Unity definiert ist. Diese Emojis können im PubNub-Netzwerk über &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;App Context&lt;/a&gt; (früher als Objects bezeichnet) gespeichert und abgerufen werden, sodass alle Emojis, auf die der Player Zugriff hat, aus dem serverlosen Speicher abgerufen werden können. Weitere Informationen zur Implementierung von App Context in Ihrem Unity-Spiel finden Sie in unserem Leitfaden.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reagieren Sie auf Nachrichten: Nachrichten-Reaktionen
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/message-actions?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Nachrichtenreaktionen&lt;/a&gt; wie Likes, Herzen, Daumen hoch, Sticker oder benutzerdefinierte spielspezifische Reaktionen bieten Spielern eine schnelle und einfache Möglichkeit, auf Chat-Nachrichten zu reagieren. Sie bringen nicht nur Interaktivität in den Chat, sondern fördern auch das Gemeinschaftsgefühl, indem sie den Spielern die Möglichkeit geben, die Nachrichten der anderen zu bestätigen und sich mit ihnen auseinanderzusetzen.&lt;/p&gt;

&lt;p&gt;Mit der &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/message-actions?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Message Actions API&lt;/a&gt; von PubNub können Sie Funktionen wie Reaktionen und Lesebestätigungen erstellen oder Nachrichten mit benutzerdefinierten Metadaten verknüpfen. Ähnlich wie Chat-Anwendungen wie Discord unterschiedliche Reaktionen und Emojis für verschiedene Server haben, könnten auch Ihre verschiedenen Chat-Typen. Sie können die verfügbaren Nachrichtenreaktionen für den angegebenen Chat-Kanal mit dem folgenden Aufruf abrufen, wenn der Chat geladen wird:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GetMessageActions&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chanChatLobby&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PNGetMessageActionsResult&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; 
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//result is of type PNGetMessageActionsResult.&lt;/span&gt;
  &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wenn ein Spieler im Begriff ist, auf eine Nachricht mit einer Reaktion zu antworten, können Sie dies tun, indem Sie eine Nachrichtenreaktion zu einer veröffentlichten Nachricht hinzufügen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;AddMessageAction&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chanChatLobby&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;MessageTimetoken&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5610547826969050&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;PNMessageAction&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;reaction&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;smiley_face&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;PNAddMessageActionResult&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//result is of type PNAddMessageActionResult.&lt;/span&gt;
  &lt;span class="p"&gt;}));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PubNub verwendet Zeit-Token, um genau zu verfolgen, wann eine Nachricht im Netzwerk veröffentlicht wurde. Wenn Sie Nachrichten empfangen, ist die Zeit auch in der Nutzlast enthalten. Sie können dann den entsprechenden Zeit-Token-Wert im MessageTimetoken()-Argument angeben, um auf die Nachricht reagieren zu können.&lt;/p&gt;

&lt;p&gt;Um auf die Reaktion zu warten und den Player zu benachrichtigen, der die ursprüngliche Nachricht gesendet hat, müssen Sie einen Listener hinzufügen und die Reaktion in der Methode OnPNMessageAction verarbeiten:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onMessageAction&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;OnPnMessageAction&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;…&lt;/span&gt;
&lt;span class="kr"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nc"&gt;OnPnMessageAction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Pubnub&lt;/span&gt; &lt;span class="nx"&gt;pn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;PNMessageActionEventResult&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="c1"&gt;//Handle Message Reaction&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ähnlich wie bei Emojis können Sie &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/objects?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;App Context&lt;/a&gt; verwenden, um abzurufen und zu speichern, wie diese Reaktionen in Ihrem Spiel visuell dargestellt werden. Um Message Reactions nutzen zu können, müssen Sie sicherstellen, dass &lt;a href="https://www.pubnub.com/how-to/admin-portal-persistence/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Message Persistence&lt;/a&gt; für Ihre Schlüssel im &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Admin Portal&lt;/a&gt; aktiviert ist.&lt;/p&gt;

&lt;h3&gt;
  
  
  GIFs und andere Multimedia
&lt;/h3&gt;

&lt;p&gt;Eine weitere wichtige Funktion, die das Chat-Erlebnis verbessert, ist der Austausch von Multimedia-Dateien. Ob GIFs, Screenshots von lustigen Momenten oder sogar die gemeinsame Nutzung von Spielressourcen - die gemeinsame Nutzung von Dateien bringt eine weitere Interaktionsebene in Ihr Spiel.&lt;/p&gt;

&lt;p&gt;Die Implementierung dieser Arten von Multimedia-Dateien erfolgt über die &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/files?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub File Sharing API&lt;/a&gt;. Mit dieser Funktion können Spieler Dateien, auf die sie Zugriff haben, hochladen, herunterladen und löschen. Um eine Datei zu senden, müssen Sie den folgenden Aufruf tätigen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;PNResult&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;PNFileUploadResult&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;fileUploadResponse&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;SendFile&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Channel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="nx"&gt;chanFriendChatSamantha&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;File&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cat_picture.jpg&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//checks the bin folder if no path is provided&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Look at this photo!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ExecuteAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nx"&gt;PNFileUploadResult&lt;/span&gt; &lt;span class="nx"&gt;fileUploadResult&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fileUploadResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;PNStatus&lt;/span&gt; &lt;span class="nx"&gt;fileUploadStatus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;fileUploadResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Status&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;fileUploadStatus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;Error&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;fileUploadResult&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;Debug&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;pubnub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;JsonPluggableLibrary&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;SerializeToJsonString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fileUploadResult&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Handle File Upload Error.&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Damit die Abonnenten auf die Datei warten können, müssen Sie den Ereignis-Listener hinzufügen und in der OnPNFile-Methode festlegen, wie die Datei angezeigt werden soll:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;listener&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;onFile&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;OnPnFile&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;…&lt;/span&gt;
&lt;span class="kr"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nc"&gt;OnPnFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Pubnub&lt;/span&gt; &lt;span class="nx"&gt;pn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;PNFileEventResult&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;//Handle how to display the file received&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sie können auch Informationen abrufen, auflisten und alle Dateien löschen, die mit verschiedenen Chat-Kanälen verbunden sind. Sie müssen sicherstellen, dass Sie die Dateifreigabefunktion im Verwaltungsportal sowie die Nachrichtenpersistenz aktivieren. Mehr dazu erfahren Sie in unserer Anleitung zum &lt;a href="https://www.pubnub.com/how-to/admin-portal-enabling-files/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Aktivieren von Dateien&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sichern Sie Ihre Chat-Kanäle: Zugriffsmanager
&lt;/h3&gt;

&lt;p&gt;In jeder Spielumgebung ist die Gewährleistung der Sicherheit von Chat-Kanälen von größter Bedeutung. Ob es darum geht, Spieler vor unerwünschten Nachrichten zu schützen oder sensible strategische Diskussionen zu sichern, das Chatsystem Ihres Unity-Spiels muss mit Blick auf die Sicherheit entwickelt werden.&lt;/p&gt;

&lt;p&gt;Hier kommt der &lt;a href="https://www.pubnub.com/docs/sdks/unity/api-reference/access-manager?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Access Manager&lt;/a&gt; von PubNub ins Spiel. Er bietet einen robusten und flexiblen Rahmen für die Sicherung Ihrer Chat-Kanäle. Mit dem Access Manager können Sie kontrollieren, wer jeden Ihrer Channels veröffentlichen oder abonnieren kann, und so dem Chatsystem Ihres Unity-Spiels eine zusätzliche Sicherheitsebene hinzufügen.&lt;/p&gt;

&lt;p&gt;Mit Access Manager können Sie Berechtigungen auf Benutzerebene, Channelebene oder sogar auf der Ebene einzelner Schlüssel erteilen. Sie können festlegen, ob ein Benutzer einen Kanal lesen, schreiben oder verwalten darf, und diese Berechtigungen können dynamisch aktualisiert werden, wenn sich die Anforderungen Ihres Spiels ändern. In einem privaten Chat zwischen zwei Spielern können Sie beispielsweise nur diesen beiden Spielern die Lese- und Schreibberechtigung für ihren privaten Kanal erteilen. Ebenso können Sie in einem Gilden-Chat allen Gildenmitgliedern Lese- und Schreibrechte erteilen, während Sie nur dem Gildenleiter Verwaltungsrechte erteilen.&lt;/p&gt;

&lt;p&gt;Access Manager unterstützt auch die Token-basierte Authentifizierung, die es Ihnen ermöglicht, Benutzer sicher zu authentifizieren und ihnen die entsprechenden Berechtigungen zu erteilen. Auf diese Weise wird sichergestellt, dass nur autorisierte Spieler auf die Chat-Kanäle Ihres Spiels zugreifen können, um Ihre Spielgemeinschaft vor potenziellen Bedrohungen zu schützen.&lt;/p&gt;

&lt;p&gt;Um diese Funktion nutzen zu können, müssen Sie sicherstellen, dass Sie Access Manager im &lt;a href="https://admin.pubnub.com/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Admin-Portal&lt;/a&gt; aktivieren. Weitere Informationen dazu finden Sie auf dieser &lt;a href="https://support.pubnub.com/hc/en-us/articles/360051974791-How-do-I-enable-add-on-features-for-my-keys-?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Support-Seite&lt;/a&gt; zur Aktivierung dieser Zusatzfunktion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie geht's weiter?
&lt;/h2&gt;

&lt;p&gt;In dieser Anleitung haben Sie gelernt, wie Sie ein robustes Echtzeit-Chat-System zu Ihrem Unity-Spiel hinzufügen können. Wir haben alles besprochen, von der Initialisierung eines PubNub-Objekts in Ihrer Umgebung über das Einrichten eines Chat-Musters, das verschiedene Chat-Typen repräsentiert, bis hin zum Senden und Empfangen von Nachrichten. Sie haben sogar gelernt, wie man fortgeschrittene Funktionen wie Emojis, Nachrichtenreaktionen und Dateifreigabe implementiert, sowie die wichtigen Aspekte eines guten Chatsystems mit Nachrichtenpersistenz, mobilen Push-Benachrichtigungen und Kanalsicherheit.&lt;/p&gt;

&lt;p&gt;Ganz gleich, ob Sie ein Indie-Entwickler sind, der an seinem ersten Spiel arbeitet, oder ein erfahrener Entwickler, der sein Multiplayer-Spiel verbessern möchte - die Echtzeit-Funktionalität von PubNub kann als Infrastruktur zur Unterstützung Ihres In-Game-Chats dienen, so dass Sie sich auf das Wesentliche konzentrieren können.&lt;/p&gt;

&lt;p&gt;Erfahren Sie mehr mit den folgenden Ressourcen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Lesen Sie unsere &lt;a href="https://www.pubnub.com/docs/sdks/unity?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Unity-Dokumentation&lt;/a&gt;, um alles zu erfahren, was Sie über das Hinzufügen von Echtzeit-Chat zu Ihrem Spiel wissen müssen.&lt;/li&gt;
&lt;li&gt;  Verstehen Sie, wie man eine &lt;a href="https://www.pubnub.com/how-to/add-friend-list-to-your-unity-game/?utm_source=devto&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Freundesliste&lt;/a&gt; hinzufügt, mit unserem Unity-Leitfaden.&lt;/li&gt;
&lt;li&gt;  Erfahren Sie, wie unser &lt;a href="https://github.com/PubNubDevelopers/unity-multiplayer-shooter"&gt;Unity Showcase Game&lt;/a&gt; Chat-Muster verwendet, um Chat-Räume und mehr zu verwalten.&lt;/li&gt;
&lt;li&gt;  Tauchen Sie ein in den &lt;a href="https://github.com/pubnub/unity"&gt;Quellcode des Unity SDK&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bei Fragen oder Problemen können Sie sich jederzeit an das Developer Relations Team unter &lt;a href="//mailto:devrel@pubnub.com"&gt;devrel@pubnub.com&lt;/a&gt; wenden.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>So richten Sie Illuminate für Ihr Spiel ein</title>
      <dc:creator>PubNub Developer Relations</dc:creator>
      <pubDate>Wed, 15 May 2024 23:49:33 +0000</pubDate>
      <link>https://forem.com/pubnub-de/so-richten-sie-illuminate-fur-ihr-spiel-ein-3ppf</link>
      <guid>https://forem.com/pubnub-de/so-richten-sie-illuminate-fur-ihr-spiel-ein-3ppf</guid>
      <description>&lt;h2&gt;
  
  
  Was ist Illuminate?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/products/illuminate/?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;PubNub Illuminate&lt;/a&gt; ist eine Lösung zur sofortigen Entscheidungsfindung und Handlungsfähigkeit, die auf der Live-Analyse und dem Tracking der Daten Ihres Spiels basiert. Illuminate gibt Ihnen die Möglichkeit, die für Ihr Spiel wichtigen KPIs abzubilden, Entscheidungen auf der Grundlage des Nutzerverhaltens auszulösen und sofortige Ergebnisse zu sehen - und das alles, ohne Ihr Entwicklungsteam groß einzubeziehen. Mit Illuminate können Sie sofort intelligente, datengestützte Entscheidungen treffen, während die Interaktionen und das Gameplay in Echtzeit stattfinden, um das Wachstum und die Effizienz Ihres Spiels zu optimieren.&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dKyu6IFj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/TXpocUbj1UohYKUEK3Cp7/643f958d6cfa08df8e3ec0e0c6cfac8e/Illuminate_-_General_Infographic__Color___2_.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dKyu6IFj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/TXpocUbj1UohYKUEK3Cp7/643f958d6cfa08df8e3ec0e0c6cfac8e/Illuminate_-_General_Infographic__Color___2_.svg" alt="Illuminate allows you to experiment and iterate in real time" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In diesem Tutorial erfährst du mehr über Illuminate, warum es für den Erfolg deines Spiels (und deines Studios) wichtig ist und wie du Illuminate einrichtest, um sofortige Entscheidungen zu treffen, die Aktionen auf Basis der Daten deines Spiels auslösen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Warum Illuminate für Spiele?
&lt;/h2&gt;

&lt;p&gt;Bei den meisten herkömmlichen Analysetools wird in der Regel nur reaktiv auf Echtzeitdaten reagiert. Anpassungen, wie z. B. Preisänderungen auf der Grundlage von Spielerfeedback, werden durch langwierige Patch-Zyklen behindert, die Datenerfassung, Tests und plattformübergreifende Bereitstellung umfassen und somit weitere Ressourcen von der Entwicklung und der Erstellung künftiger Inhalte abziehen. Es besteht ein dringender Bedarf an Echtzeittransparenz in Bezug auf Spielerengagement und Monetarisierung, um schnelle taktische Entscheidungen zu ermöglichen, da verwertbare Erkenntnisse unwirksam werden, wenn sie sich auch nur um ein paar Stunden nach dem Auftreten des Ereignisses verzögern.&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t-HT4tTS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/5VONbyesGtOfH2IARy6zQi/6eab4f3544cdae45066a4b3869f045b4/illuminate-problems-game-companies-face.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t-HT4tTS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/5VONbyesGtOfH2IARy6zQi/6eab4f3544cdae45066a4b3869f045b4/illuminate-problems-game-companies-face.png" alt="There are a lot of problems that game companies face when trying to experiment or deploy changes based on feedback. Illuminate can help solve these problems." width="800" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Illuminate ist ein anpassungsfähiges Low-Code-Produkt, mit dem Spielemanager und Datenanalysten die Auswirkungen ihrer strategischen Entscheidungen sofort anwenden und bewerten können. Illuminate ermöglicht es Teams, spontane Anpassungen der Spielbalance, effektivere und angemessenere Monetarisierungsstrategien durch Echtzeitexperimente und personalisierte Spielerbelohnungen vorzunehmen, um die Spielerbindung und das Spielerlebnis zu verbessern, während gleichzeitig betrügerische Aktivitäten aufgedeckt werden, ohne die Spielentwickler zu belasten.&lt;/p&gt;

&lt;p&gt;Mit Illuminate können Sie Ihre Plattform verwalten und sofortige Maßnahmen in Echtzeit ergreifen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Führen Sie gezielte Monetarisierungsexperimente in Kanälen durch und sehen Sie sofortige Ergebnisse&lt;/li&gt;
&lt;li&gt; Senden Sie sofort personalisierte Empfehlungen auf der Grundlage von Spieleraktionen, während diese stattfinden.&lt;/li&gt;
&lt;li&gt; Lösen Sie Aktionen auf der Grundlage von Benutzer- oder Kohortenverhalten aus, und sehen Sie sofortige Ergebnisse.&lt;/li&gt;
&lt;li&gt; Verbessern Sie die Betrugserkennung und identifizieren Sie verdächtiges Verhalten in Echtzeit und reagieren Sie darauf.&lt;/li&gt;
&lt;li&gt; Anpassen und Experimentieren mit den Preisen von Shop-Artikeln im Spiel. Passen Sie die Preise an, wenn Spieler mehrere Artikel desselben Typs kaufen, und lösen Sie In-Game-Ereignisse aus, die sich auf alle Ladenpreise auswirken.&lt;/li&gt;
&lt;li&gt; Belohnen Sie Spieler für den Abschluss von Herausforderungen/Erfolgen mit Rabattcodes für Gegenstände im Spiel. Überprüfen Sie, wo die Spieler am wenigsten Zeit verbringen, und ziehen Sie in Betracht, die Spieler dafür zu belohnen, dass sie Zeit in diesem Bereich verbringen, oder ändern Sie die Art der Belohnungen, die die Spieler erhalten.&lt;/li&gt;
&lt;li&gt; Spawnen Sie hilfreiche Gegenstände und passen Sie zentrale Gameplay-Funktionen spontan an, ohne die Entwickler zu nerven.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Mehr darüber, wie Illuminate Spiele unterstützt, erfahren Sie in unserem Video &lt;a href="https://www.youtube.com/watch?v=2TXLPfAWNVI"&gt;Illuminate for Gaming&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wie du Illuminate für dein Spiel einrichtest
&lt;/h2&gt;

&lt;p&gt;Bevor du mit der Einrichtung von Illuminate für dein Spiel beginnst, musst du einige wichtige Begriffe verstehen, die bei der Einrichtung verwendet werden. Illuminate besteht aus diesen drei Modulen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Business-Objekt&lt;/strong&gt;: Wie du Daten in Illuminate bekommst. Sie können Business Objects definieren, erstellen und aktivieren, die Container für die Erfassung von Daten aus den ausgewählten Anwendungen und Keysets sind. Über eine Reihe von Optionen (Measures, Dimensionen oder Metriken) können Sie entscheiden, welche Daten Sie in Echtzeit verfolgen und wie Sie sie aggregieren möchten.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Entscheidung&lt;/strong&gt;: Hier ergreifen Sie Maßnahmen auf der Grundlage der von Ihnen erstellten Metriken. Dazu können Sie Regeln mit Bedingungen definieren, die erfüllt werden müssen, und Aktionen, die ausgelöst werden, wenn diese Regeln erfüllt sind.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Dashboard&lt;/strong&gt;: Hier werden die in Business Objects erstellten Metriken und die in Decisions ausgeführten Aktionen durch Diagramme und Dashboards (Sammlungen von Diagrammen) visualisiert.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qtDNhv95--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/D1i0KNHkQFIYvVzVbwtDm/a05fdda93a0e7acd44cede7c202f9c40/illuminate-how-to-gaming-illuminate-workflow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qtDNhv95--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/D1i0KNHkQFIYvVzVbwtDm/a05fdda93a0e7acd44cede7c202f9c40/illuminate-how-to-gaming-illuminate-workflow.png" alt="Illuminate is a constant cycle of experimentation and iteration once you have set up the associated Dashboard, Business Object, and Decisions." width="800" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nachdem wir nun die wichtigsten Begriffe definiert haben, besteht die Integration von Illuminate mit Ihrem Spiel aus sechs Schritten:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Verstehen des Nachrichtenschemas&lt;/li&gt;
&lt;li&gt; Wählen Sie aus, woher Ihre Daten kommen.&lt;/li&gt;
&lt;li&gt; Wähle deine Daten&lt;/li&gt;
&lt;li&gt; Visualisiere deine Daten&lt;/li&gt;
&lt;li&gt; Setzen Sie Ihre Daten in die Tat um&lt;/li&gt;
&lt;li&gt; Visualisieren und Anpassungen vornehmen&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Verstehen Sie das Meldungsschema
&lt;/h3&gt;

&lt;p&gt;Es ist von entscheidender Bedeutung, das Datenschema Ihres Spiels zu verstehen. Das bedeutet, dass Sie die Datentypen identifizieren müssen, die Sie verfolgen und analysieren möchten, z. B. Spieleraktionen, Transaktionen im Spiel und Systemereignisse. Indem sie verstehen und dokumentieren, was genau in der Nutzlast enthalten ist, können Entwickler sicherstellen, dass Analysten und andere Teammitglieder die Daten mithilfe von JSONPath effektiv den entsprechenden Quellen zuordnen können. Sie werden verstehen, warum dies wichtig ist, wenn Sie bei der Erstellung von Business Objects Ihre Daten auswählen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wählen Sie aus, woher Ihre Daten kommen
&lt;/h3&gt;

&lt;p&gt;Illuminate kann mit jedem Spiel verwendet werden, das sich online verbindet, unabhängig davon, ob es von PubNub betrieben wird oder nicht. Wenn die Infrastruktur Ihres Spiels von PubNub betrieben wird, müssen Sie nur die entsprechende App und das KeySet für Ihr Spiel auswählen, wenn Sie das Business-Objekt im &lt;a href="https://admin.pubnub.com/?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Admin-Portal&lt;/a&gt; erstellen (mehr dazu in Kürze).&lt;/p&gt;

&lt;p&gt;Wenn Ihr Spiel nicht von PubNub betrieben wird, können Ihre Daten über die Fire API gesendet werden, entweder über die &lt;a href="https://www.pubnub.com/docs/sdks/rest-api/send-fire-request?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;REST API&lt;/a&gt; oder über eines unserer &lt;a href="https://www.pubnub.com/docs/sdks?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;SDKs&lt;/a&gt;. Der Fire-Endpunkt ermöglicht es dem Client, eine Nachricht an die Event-Handler von Functions zu senden. Diese Nachrichten werden direkt an alle Event-Handler weitergeleitet, die auf dem Kanal registriert sind, auf den Sie Fire senden, und lösen deren Ausführung aus.&lt;/p&gt;

&lt;p&gt;Um die PubNub Fire API nutzen zu können, musst du einen PubNub-Account erstellen und dein Keyset mit den Funktionen, die du für dein Spiel benötigst, einrichten. Dieses Keyset enthält die für die Fire-API erforderlichen Veröffentlichungs- und Anmeldeschlüssel. Wie du das machst, erfährst du in unserem &lt;a href="https://www.pubnub.com/how-to/admin-portal-create-keys/?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Leitfaden&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wählen Sie Ihre Daten: Business-Objekte
&lt;/h3&gt;

&lt;p&gt;Business Objects sind in Illuminate von grundlegender Bedeutung. Sie sind Container für die Daten, die Sie für die Entscheidungsfindung und Visualisierung in Illuminate verwenden möchten, und dienen im Wesentlichen dazu, Daten in Illuminate zu erhalten.&lt;/p&gt;

&lt;p&gt;Ein Business-Objekt besteht aus drei Elementen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Auswahl der Daten (Measures und Dimensions)&lt;/li&gt;
&lt;li&gt; Datenquelle (woher die Daten kommen)&lt;/li&gt;
&lt;li&gt; Bedingungen (Metriken)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Obwohl es nichts mit Datenbanken zu tun hat, ist es hilfreich, sich die Struktur eines Business-Objekts in Form von SQL SELECT (Kennzahlen und Dimensionen), FROM (Datenquelle), WHERE (Metriken) vorzustellen. Wenn Sie Ihre Business-Objekte erstellen, sollten Sie die &lt;a href="https://www.pubnub.com/docs/illuminate/business-objects/basics?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Dokumentation&lt;/a&gt; beachten, um alle spezifischen Details oder Umgehungsmöglichkeiten zu erfahren.&lt;/p&gt;

&lt;h4&gt;
  
  
  Wählen Sie die Daten aus
&lt;/h4&gt;

&lt;p&gt;Es gibt zwei verschiedene Arten von Werten, die Sie für ein Business-Objekt auswählen können: Kennzahlen und Dimensionen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/docs/illuminate/business-objects/basics#measures?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Measures&lt;/a&gt; sind numerische, quantitative Werte. Beispiele für Measures sind Spieldauer, Münzanzahl, Anzahl der Kills, Waffenschaden oder Bestellwert.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/docs/illuminate/business-objects/basics#dimensions?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Dimensionen&lt;/a&gt; sind qualitative Werte, z. B. Spielersprache, ausgewählte Kosmetika, Questtyp, gewählter Waffentyp oder Spielstufe.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LX_501on--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/2g5KUkmNBlZ9GXWe7ofZlJ/479b6478e62cb00ca07cd0cbd7b205c0/illuminate-how-to-gaming-business-object-edit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LX_501on--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/2g5KUkmNBlZ9GXWe7ofZlJ/479b6478e62cb00ca07cd0cbd7b205c0/illuminate-how-to-gaming-business-object-edit.png" alt="With Illuminate, you can create and edit Business Objects which contain mapped quantitative and qualitative data to capture." width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Je nach Art der Daten, die Sie verfolgen möchten, müssen Sie &lt;a href="https://www.pubnub.com/docs/illuminate/business-objects/basics#data-mapping?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;die Daten&lt;/a&gt; mithilfe von JSONPath auf Ihre Kennzahlen und Dimensionen &lt;a href="https://www.pubnub.com/docs/illuminate/business-objects/basics#data-mapping?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;abbilden&lt;/a&gt;. Illuminate muss wissen, wo es mit der Erfassung dieser Daten aus Ihrer Datenquelle (die Sie im vorherigen Schritt eingerichtet haben) beginnen soll. Um die Datenquelle zu definieren, wählen Sie die Schaltfläche "Map" neben jedem Measure und jeder Dimension und geben Sie die entsprechenden JSON-Pfade an.&lt;/p&gt;

&lt;p&gt;Dies ist der schwierigste Teil der Einrichtung von Business Objects, da Sie Ihr Nachrichtenschema verstehen müssen. Da Sie Ihr Nachrichtenschema bereits dokumentiert oder verstanden haben, müssen Sie dieses darauf abbilden, wie Iluminate nach den Daten sucht.&lt;/p&gt;

&lt;p&gt;Wenn Sie Messages erfassen (speziell Publish Message API), sucht Illuminate nach der folgenden Struktur. Wenn Ihre Infrastruktur nicht von PubNub betrieben wird, müssen Ihre Daten in der gleichen Struktur wie die Publish Message API gemappt werden:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;message&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt; &lt;span class="c1"&gt;// data from the published message&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;body&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="nx"&gt;payload&lt;/span&gt; &lt;span class="nx"&gt;defined&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="nx"&gt;you&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;meta&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;meta&lt;/span&gt; &lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt; &lt;span class="nx"&gt;defined&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="nx"&gt;you&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;userId&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="nx"&gt;ID&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;k&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;UUID&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;sender&lt;/span&gt; &lt;span class="nx"&gt;ID&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;channel&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt; &lt;span class="nx"&gt;on&lt;/span&gt; &lt;span class="nx"&gt;which&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;message&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;published&lt;/span&gt;
 &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Um eine Kennzahl oder Dimension korrekt abzubilden, müssen Sie das &lt;code&gt;Nachrichtenobjekt&lt;/code&gt; gefolgt von einem weiteren Feld angeben. Es folgt immer dieser Struktur: &lt;code&gt;$.message.{obligatory-secondary-field}.{optional-further-fields}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Die Art und Weise, wie Sie die Daten zuordnen, hängt ganz von Ihrer Nachrichtenstruktur ab&lt;/em&gt;. Hier sind einige Beispiele für die Zuordnung der Daten für Nachrichten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Anzahl der Münzen verfolgen (Maßeinheit) =&amp;gt; $.message.meta.coins&lt;/li&gt;
&lt;li&gt;  Ausgerüsteter kosmetischer Gegenstand (Dimension) =&amp;gt; $.message.body&lt;/li&gt;
&lt;li&gt;  Kanalname (Dimension) =&amp;gt; $Nachricht.Kanal&lt;/li&gt;
&lt;li&gt;  Verursachter Schaden (Maß) =&amp;gt; $.message.body[6]&lt;/li&gt;
&lt;li&gt;  Bestimmte Benutzernamen erhalten (Dimension) =&amp;gt; $.message.userId&lt;/li&gt;
&lt;li&gt;  Anzahl der Freunde (Maßeinheit) =&amp;gt; $.message.body.user.friends_count&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xSMgYJkd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/1s2MtcR50cmcLk0s2EapsL/5aa0bb25a6fcb384f5e3f0b6932c99af/illuminate-how-to-gaming-map-coins-purchased.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xSMgYJkd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/1s2MtcR50cmcLk0s2EapsL/5aa0bb25a6fcb384f5e3f0b6932c99af/illuminate-how-to-gaming-map-coins-purchased.png" alt="In Illuminate, you can map different data to be captured via Business Objects." width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Illuminate kann auch Daten über den &lt;a href="https://www.pubnub.com/docs/general/metadata/channel-metadata?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;App Context&lt;/a&gt; von PubNub erfassen, der es Ihnen ermöglicht, Metadaten über Channels, Channel-Mitglieder, Channel-Mitglieder und Benutzer, die über das PubNub-Netzwerk gesendet werden, zu erhalten. Sie können auf diese Informationen zugreifen, indem Sie genau verfolgen, wie Illuminate diese Daten erfasst.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;// data from the sending user metadata, can be null&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;externalId&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt; &lt;span class="nx"&gt;external&lt;/span&gt; &lt;span class="nx"&gt;ID&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;status&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;custom&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="nx"&gt;defined&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="nx"&gt;you&lt;/span&gt;
 &lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;channel&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt; &lt;span class="c1"&gt;// data from the channel the message is sent on, can be null&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;type&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt; &lt;span class="nx"&gt;type&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;status&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;custom&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="nx"&gt;channel&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="nx"&gt;defined&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="nx"&gt;you&lt;/span&gt;
 &lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;membership&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt; &lt;span class="c1"&gt;// data from the user's membership to the channel, can be null&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;status&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;membership&lt;/span&gt; &lt;span class="nx"&gt;status&lt;/span&gt;
   &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;custom&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt; &lt;span class="nx"&gt;membership&lt;/span&gt; &lt;span class="nx"&gt;metadata&lt;/span&gt; &lt;span class="nx"&gt;defined&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="nx"&gt;you&lt;/span&gt;
 &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ähnlich wie bei Messages müssen Sie, um ein Measure oder eine Dimension korrekt zuzuordnen, das &lt;code&gt;User-&lt;/code&gt;, &lt;code&gt;Channel-&lt;/code&gt; oder &lt;code&gt;Membership-Objekt&lt;/code&gt; bereitstellen, gefolgt von mindestens einem Schlüssel aus Ihrem JSON. Es folgt immer dieser Struktur: &lt;code&gt;$.user.{obligatory-secondary-field}.{optional-further-fields}&lt;/code&gt;. Hier sind einige Beispiele für das Mapping der Daten für App Context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Shop-Artikel-Details (Dimension) =&amp;gt; $.channel.custom.details&lt;/li&gt;
&lt;li&gt;  Status der Freundesliste (Dimension) =&amp;gt; $.membership.status&lt;/li&gt;
&lt;li&gt;  Spielersprache (Dimension) =&amp;gt; $.user.custom.language&lt;/li&gt;
&lt;li&gt;  Durchschnittspunktzahl des Spielers (Dimension) =&amp;gt; $.user.custom.team_deathmatch_score&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;: Um ein Business-Objekt zu erstellen, müssen Sie mindestens eine Dimension oder eine Kennzahl hinzufügen.&lt;/p&gt;

&lt;h4&gt;
  
  
  Datenquelle
&lt;/h4&gt;

&lt;p&gt;Sobald Sie Ihre Kennzahlen und Dimensionen zugeordnet haben, müssen Sie festlegen, woher Ihre Daten stammen. Dies haben Sie zuvor festgelegt. Stellen Sie sicher, dass Sie die entsprechende App und das Keyset auswählen, die Sie zuvor definiert haben, um sicherzustellen, dass Illuminate die Daten aus der richtigen Quelle erfasst.&lt;/p&gt;

&lt;h4&gt;
  
  
  Bedingungen (Metriken)
&lt;/h4&gt;

&lt;p&gt;Sobald Sie Ihre Datenquelle ausgewählt haben, können Sie Bedingungen, sogenannte &lt;a href="https://www.pubnub.com/docs/illuminate/business-objects/basics#metrics?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Metriken&lt;/a&gt;, hinzufügen. Ähnlich wie die WHERE-Anweisung in SQL sind Metriken für die Datenerfassung in Business Objects nicht erforderlich, aber äußerst nützlich, um nach Kennzahlen und Dimensionen zu filtern und Berechnungen darauf anzuwenden. Denken Sie daran, dass Metriken erforderlich sind, um eine Entscheidung zu erstellen oder auf Dashboards durch Diagramme zu visualisieren (mehr dazu später).&lt;/p&gt;

&lt;p&gt;Beim &lt;a href="https://www.pubnub.com/docs/illuminate/business-objects/create-business-object#create-metrics?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Erstellen von Metriken&lt;/a&gt; müssen Sie den Filtern Felder zuweisen und auswählen. Es gibt ein paar Felder, die Sie beachten sollten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Geben Sie Ihrer Metrik einen sinnvollen Namen, da das Diagramm zur Visualisierung der Daten im Dashboard denselben Namen erhalten wird.&lt;/li&gt;
&lt;li&gt;  Bei der Auswahl der Funktion können Measures derzeit mit &lt;code&gt;SUMME&lt;/code&gt;, &lt;code&gt;AVG&lt;/code&gt;, &lt;code&gt;MAX&lt;/code&gt; und &lt;code&gt;MIN&lt;/code&gt; aggregiert werden. Dimensionen können nur die Funktion &lt;code&gt;ZAEHLEN&lt;/code&gt; verwenden. Wenn Sie die Funktion auswählen, können Sie die Kennzahl oder Dimension in einer Dropdown-Liste auswählen.&lt;/li&gt;
&lt;li&gt;  Für Periode wählen Sie das Aggregationsfenster oder die Zeitperiode für Ihre Funktion.&lt;/li&gt;
&lt;li&gt;  Vergewissern Sie sich, dass Sie die Dimensionen auswählen, die in Ihren Diagrammen und Entscheidungen verfügbar sein sollen (da Sie ohne diese Auswahl später nicht in der Lage sind, in Diagrammen zu segmentieren und sie auf Regeln in den Entscheidungen anzuwenden).&lt;/li&gt;
&lt;li&gt;  Filtern Sie nach bestimmten Nachrichten oder App-Kontextdaten auf der Grundlage verschiedener Dimensionen. Beachten Sie, dass Sie zur Visualisierung in Dashboards und zur Erfassung der Daten keine Filter auf die Metrik anwenden müssen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sie können mehrere Metriken für ein Geschäftsobjekt erstellen, die unterschiedliche Daten erfassen. Unten sehen Sie ein Beispiel für eine Metrik zur Erfassung des verursachten Schadens für eine Maßnahme und die Art der Waffe, die diesen Schaden verursacht hat:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9tFdditq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/Sq6bSPz7hn0Gwy0VWUYqV/76f0278d0d5cc533d9c3d7a1b47d25d0/illuminate-how-to-gaming-business-object-edit-metric.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9tFdditq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/Sq6bSPz7hn0Gwy0VWUYqV/76f0278d0d5cc533d9c3d7a1b47d25d0/illuminate-how-to-gaming-business-object-edit-metric.png" alt="In Illuminate, you can edit a metric associated with a Business Object to capture specific data by using Filters." width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Visualisieren Sie Ihre Daten: Dashboards und Diagramme
&lt;/h3&gt;

&lt;p&gt;Mit Illuminate können Sie nicht nur die Metriken, die Sie verfolgen möchten, sondern auch die Entscheidungsaktionen und ihre Ergebnisse in Diagrammen auf Dashboards &lt;a href="https://www.pubnub.com/docs/illuminate/dashboards/basics?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;visualisieren&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Auf diese Weise können Sie Trends in Ihrem Produkt in Echtzeit beobachten, reagieren und Ihren Ansatz mit datengestützten Geschäftsentscheidungen verfeinern. Außerdem können Sie auf diese Weise feststellen, ob Illuminate Ihre Daten auf der Grundlage der zuvor eingerichteten Business Objects korrekt erfasst!&lt;/p&gt;

&lt;p&gt;Sie können ein &lt;a href="https://www.pubnub.com/docs/illuminate/dashboards/basics#dashboards?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Dashboard&lt;/a&gt; erstellen, d. h. eine Sammlung von Diagrammen, mit der Sie alle Ihre Metriken an einem Ort sehen und Diagramme zu Ihrem Dashboard hinzufügen können. Ein &lt;a href="https://www.pubnub.com/docs/illuminate/dashboards/basics#charts?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Diagramm&lt;/a&gt; ist eine visuelle Darstellung einer für ein bestimmtes Business-Objekt definierten Kennzahl.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2NwoFfyK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/6PLWtomxwi4aQ6zQwXdPDo/a30d85ab378d640247158556624d8e35/illuminate-how-to-gaming-add-chart.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2NwoFfyK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/6PLWtomxwi4aQ6zQwXdPDo/a30d85ab378d640247158556624d8e35/illuminate-how-to-gaming-add-chart.png" alt="With Illuminate, you can add charts to Dashboards to visualize data." width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sie können die Art und Weise, wie die Metrikdaten in einem Diagramm angezeigt werden, jederzeit anpassen, z. B. einen anderen Zeitbereich (z. B. 30 Minuten, 1 Stunde oder ein benutzerdefiniertes Datum) anzeigen und die Metrikdaten in verschiedenen Diagrammtypen darstellen, entweder als Balkendiagramm (Standardansicht) oder als Liniendiagramm.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DjSDXefD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/4B7KLgDDQWyZuTrTjxWF2Y/f602d35dc8da99a64dde0a9aa43d844e/illuminate-how-to-gaming-monetization-dashboard.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DjSDXefD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/4B7KLgDDQWyZuTrTjxWF2Y/f602d35dc8da99a64dde0a9aa43d844e/illuminate-how-to-gaming-monetization-dashboard.png" alt="In Illuminate, you can monitor data captured in real time by visualizing the charts in your Dashboard and see when any associated Decisions are triggered." width="740" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sie können mehrere Diagramme (Metriken) zu einem Dashboard hinzufügen sowie verschiedene Dashboards zur Visualisierung verschiedener Bereiche Ihres Spiels (Monetarisierung, Gameplay, Questbelohnungen usw.) erstellen. Sobald Sie Ihre Entscheidungen konfiguriert haben, können Sie die ausgelösten Entscheidungsaktionen und ihre Ergebnisse in Diagrammen auf Dashboards anzeigen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lassen Sie Ihre Daten arbeiten: Entscheidungen und Aktionen
&lt;/h3&gt;

&lt;p&gt;Sobald Sie Ihre Metrik erstellt haben, können Sie mit der Auswertung dieser Daten beginnen, Trends überwachen und vor allem Maßnahmen ergreifen.&lt;/p&gt;

&lt;p&gt;Illuminate enthält das Modul " &lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Entscheidungen"&lt;/a&gt;, mit dem Sie die Metriken definieren können, auf die Sie reagieren möchten, indem Sie verschiedene Arten von Aktionen und Regeln erstellen, die festlegen, wann diese Aktionen ausgeführt werden sollen.&lt;/p&gt;

&lt;p&gt;Wenn Sie eine Entscheidung erstellen, müssen Sie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Wählen Sie ein Business-Objekt und eine der damit verknüpften Metriken.&lt;/li&gt;
&lt;li&gt;  Definieren Sie die &lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics#actions?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Aktionen&lt;/a&gt;, die Sie durchführen möchten.&lt;/li&gt;
&lt;li&gt;  Richten Sie [rules}&lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics#rules?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;(https://www.pubnub.com/docs/illuminate/decisions/basics#rules)&lt;/a&gt; unter Verwendung der gewählten Bedingungen und konfigurierten Aktionen ein. Diese Regeln werden Aktionen auslösen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Decisions soll Produktmanagern helfen, mit Engagement- und Monetarisierungsstrategien zu experimentieren, bevor sie diese kodieren und einsetzen. Mit Illuminate können sie Entscheidungen auf der Grundlage tatsächlicher Daten statt auf der Basis von Annahmen treffen und dann anhand dieser Daten durch automatisierte Bedingungen und Aktionen handeln.&lt;/p&gt;

&lt;p&gt;Entscheidungen bestehen aus zwei Teilen: Aktionen und Regeln.&lt;/p&gt;

&lt;h4&gt;
  
  
  Aktionen
&lt;/h4&gt;

&lt;p&gt;Aktionen legen fest, was geschehen soll, wenn Bedingungen (siehe unten) erfüllt sind.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SP1kLL6b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/2scdabnjHhwn2ygxEKaPcF/63e4c9b8988c3f64f08b9d61bbe712b2/illuminate-how-to-gaming-edit-configuration.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SP1kLL6b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/2scdabnjHhwn2ygxEKaPcF/63e4c9b8988c3f64f08b9d61bbe712b2/illuminate-how-to-gaming-edit-configuration.png" alt="In Illuminate, edit the configuration of your Decision to trigger on different conditions and execute various actions." width="800" height="632"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beim Einrichten von Aktionen können Sie aus fünf Aktionstypen wählen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Nachricht senden: Veröffentlicht eine Nachricht an einen Benutzer oder Kanal und nutzt die PubNub Publish API. Sie können optional Variablen (${variableThatChanges}) hinzufügen, die Sie beim Einrichten von Entscheidungsregeln dynamisch steuern und ändern können.&lt;/li&gt;
&lt;li&gt; Webhook: Sendet einen Aufruf an eine bestimmte URL, indem es eine Verbindung zu einer Drittanbieter-Dienstintegration herstellt. Sie können optional Variablen (${variableThatChanges}) hinzufügen, die Sie beim Einrichten von Entscheidungsregeln steuern und dynamisch ändern können.&lt;/li&gt;
&lt;li&gt; Benutzer aktualisieren: Legt vordefinierte oder benutzerdefinierte Benutzer-Metadaten fest, indem die gewünschten Informationen als Schlüssel/Wert-Paare bereitgestellt werden, wobei die PubNub App Context API für Benutzer verwendet wird.&lt;/li&gt;
&lt;li&gt; Kanal aktualisieren: Legt beliebige vordefinierte oder benutzerdefinierte Channel-Metadaten fest, indem es die gewünschten Informationen als Schlüssel/Wert-Paare bereitstellt und dabei die PubNub App Context API für Channels verwendet.&lt;/li&gt;
&lt;li&gt; Mitgliedschaft aktualisieren: Legt beliebige vordefinierte oder benutzerdefinierte Mitgliedschafts-Metadaten fest, indem es die gewünschten Informationen als Schlüssel/Wert-Paare bereitstellt und dabei die PubNub App Context API für Mitgliedschaften verwendet.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Obwohl Sie nur eine Metrik pro Entscheidung konfigurieren können, können Sie mehrere Entscheidungen erstellen, um Ihre Anwendungsfälle abzudecken. Achten Sie darauf, die &lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics#actions?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Dokumentation&lt;/a&gt; zu befolgen, wenn Sie Aktionen für Ihre Entscheidung erstellen.&lt;/p&gt;

&lt;p&gt;Sobald Sie die Konfiguration Ihrer Aktionen abgeschlossen haben, müssen Sie die Regeln für die auszulösenden Aktionen einrichten.&lt;/p&gt;

&lt;h4&gt;
  
  
  Regeln
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics#rules?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Regeln&lt;/a&gt; bestehen aus &lt;a href="https://www.pubnub.com/docs/illuminate/decisions/basics#conditions?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Bedingungen&lt;/a&gt;, d. h. Kriterien, die erfüllt sein müssen, um eine Aktion auszulösen, und aus Aktionen, die ausgeführt werden, wenn die Bedingungen erfüllt sind. Eine einzelne Regel ist eine Definition (Zeile in einer Entscheidungstabelle), die angibt, welche Aktion bei welcher Bedingung ausgelöst werden soll.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y8j6NLRN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/4r1hj3lXGlVwIM1zB2pUkG/808ad92653032c9bd901571a3ac000a1/illuminate-how-to-gaming-edit-rules.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y8j6NLRN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://images.ctfassets.net/3prze68gbwl1/4r1hj3lXGlVwIM1zB2pUkG/808ad92653032c9bd901571a3ac000a1/illuminate-how-to-gaming-edit-rules.png" alt="In Illuminate, you can add and edit rules that when satisfied, trigger various Actions associated with your Decisions." width="800" height="705"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Die Entscheidungstabelle besteht aus vier Teilen:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Trefferrichtlinie: Einstellung, die festlegt, ob nur für die erste übereinstimmende Regel (Single) oder für alle (Multiple) Aktionen ausgelöst werden sollen, wenn ihre Bedingungen erfüllt sind.&lt;/li&gt;
&lt;li&gt; Aggregationsfenster: Der einzige Wert, den Sie im Regelkonfigurationsfenster nicht bearbeiten können. Er wird automatisch aus dem bei der Erstellung einer Metrik für Funktion gewählten Wert Periode ausgefüllt. Er gibt an, wie häufig eine Metrik eine bestimmte Funktion (COUNT, AVG, MAX oder andere) für eine Kennzahl oder Dimension ausführt.&lt;/li&gt;
&lt;li&gt; Häufigkeit der Auswertung: Lookback-Fenster für die Regel, das festlegt, wie häufig Illuminate die Regel(n) in dieser Entscheidung ausführen soll.&lt;/li&gt;
&lt;li&gt; Bedingungen: Eine Reihe von Bedingungen, die Sie mithilfe der Konfigurationstabelle selbst definieren. Hier legen Sie fest, welche Bedingungen (und Schwellenwerte, die sie erfüllen) welche Aktionen auslösen sollen.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Beachten Sie, dass jede Zeile in der Entscheidungstabelle eine eigene Entscheidungsregel ist, die aus Bedingungen und Aktionen besteht. &lt;strong&gt;Die Reihenfolge der Regeln bestimmt die Reihenfolge, in der sie ausgeführt werden&lt;/strong&gt;. Wenn Sie die bestehende Reihenfolge ändern möchten, wählen Sie Regeln in einer Entscheidung bearbeiten und ändern Sie die Reihenfolge mit den Optionen Nach oben oder Nach unten unter dem Menü "Aktionen" neben jeder Regel.&lt;/p&gt;

&lt;h3&gt;
  
  
  Visualisieren und Anpassen
&lt;/h3&gt;

&lt;p&gt;Sobald Sie Ihre Geschäftsobjekte, Dashboards und Diagramme sowie Ihre Entscheidungen eingerichtet haben, können Sie diese analysieren und mit Änderungen in Echtzeit experimentieren. Sie brauchen nicht mehr auf Balance-Patches zu warten, um zu sehen, ob sich die von Ihnen vorgenommenen Änderungen positiv auf die Spieler oder das Spiel auswirken.&lt;/p&gt;

&lt;p&gt;Die meiste Zeit werden Sie hier verbringen, wo Sie experimentelle Entscheidungen treffen, um Anpassungen vorzunehmen, die das Engagement in Ihrem Spiel erhöhen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Was kommt als Nächstes?
&lt;/h2&gt;

&lt;p&gt;Illuminate legt die Macht der Echtzeit-Experimente in die Hände der Teams, die direkt für das Wachstum und das Endergebnis des Unternehmens verantwortlich sind. Illuminate ist eine wertvolle Plattform für Experimente und intelligente, datengestützte Entscheidungen auf der Grundlage des Spiel- und Nutzerverhaltens, indem es die für Ihr Spiel wichtigen KPIs abbildet und Entscheidungen auf der Grundlage dieser Verhaltensweisen auslöst.&lt;/p&gt;

&lt;p&gt;Schauen Sie sich unsere &lt;a href="https://www.pubnub.com/products/Illuminate-gaming/?utm_source=medium&amp;amp;utm_medium=syndication&amp;amp;utm_campaign=off_domain&amp;amp;utm_content=de"&gt;Illuminate-Ressourcen&lt;/a&gt; an, um zu erfahren, wie Illuminate Ihr Spiel unterstützen kann und wie Sie Illuminate selbst ausprobieren können. Wenn Sie Fragen haben, können Sie sich wie immer an das Developer Relations Team unter &lt;a href="//mailto:devrel@pubnub.com"&gt;devrel@pubnub.com wenden.&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
