2016-04-02 19 views
1

Ich versuche, eine Gruppe zu erstellen, sowie One-on-One-Chat in Android mit pubnub. Das Problem, das ich bin vor ist:pubnub andere Leute in Gruppenchat einladen

Sagen, ich habe drei Benutzer: A, B, C.

die alle drei haben ein Pub Noppe Instanz läuft mit einzigartiger Uuid Nehmen sich an.

A möchte Gruppenchat mit B und C starten. Im Backend kann ich einen neuen dynamischen Kanal erstellen und dann A für diesen Kanal abonnieren.

Jetzt muss ich automatisch B und C zu diesem Kanal abonnieren, damit A mit ihnen chatten kann.

Wie mache ich das? Wie melde ich ein Update an B und C, dass A einen Gruppenchat mit ihnen beginnen möchte?

Eine Option, an die ich gedacht habe, ist das Erstellen eines globalen Kanals (G), auf den alle Benutzer abonniert sind. Wenn A dann mit B und C einen Gruppenchat führen möchte, erstellen Sie im Backend einen dynamisch generierten Kanal:

  • .
  • subscribe A zu diesem Kanal

  • eine Nachricht veröffentlichen (die UUID von B und C, und die neuen
    Kanalnamen enthält) an den G-Kanal.

  • Nun, alle anderen werden diese Nachricht von G-Kanal empfangen und dann, B und C werden sehen, dass die Botschaft ihre UUID enthält, so dass sie
    wird auf diesen Kanal abonnieren.

Aber wie es scheint, ist diese Methode nicht effizient.

Bitte schlagen Sie vor, wie es geht.

Eine andere Möglichkeit, die Frage zu gestalten, wäre: Kann ich Ereignisse an eine Pub Nub-Instanz senden, vorausgesetzt, ich weiß nur, dass es UUID ist?

EDIT:

I die folgenden Szenarien abdecken wollen:

1) A mit nur B Chat initiieren oder nur C.

2) A mit B und C initiieren Chat oder B und D.

3) B sollte Meldungen von A in einem separaten Kanal, Nachrichten von C in einem separaten Kanal und Nachrichten von einer Gruppe mit A und C in einem anderen Kanal chatten.

Antwort

2

Wie in Pubnub Community Forum gibt es keine Möglichkeit, direkt mit dem bestimmten Teilnehmer zu kommunizieren. Mein Vorschlag ist, einen dedizierten Kanal für jede UUID zu erstellen und direkt an diesen Kanal zu senden. Also muss die App beim Start selbst den Kanal (eigene UUID) abonnieren.

+0

Bearbeitete meine Frage, deckt es das 3. Szenario ab? – Yashasvi

+0

Von meinem Verständnis ja. Sie könnten den dedizierten Kanal (seine eigene UUID) für etwas wie einen Dienstnachrichtenkanal verwenden und von diesem einzeln jede Nachricht (eins zu eins oder Gruppe) behandeln. – Krish

+0

Eindeutige, pro Benutzer Kanäle ist genau wie Sie eine Nachricht an einen einzelnen Benutzer senden. Mit den herankommenden PubNub BLOCKS könnte in PubNub eine Logik ausgeführt werden, die bestimmte Nachrichten an bestimmte Benutzer weiterleitet. Aber jeder Benutzer hat immer noch einen einzigartigen Kanal, den er abonniert hat. Außerdem können Sie bald Conditional Subscribes bereitstellen, um die Nachrichten zu filtern, die Sie erhalten. Bleiben Sie auf den PubNub-Marketing-Kanälen für Ankündigungen auf dem Laufenden. –