2012-12-31 14 views
8

Ich möchte Gruppenchat in meiner Anwendung implementieren, zu diesem Zweck verwende ich MUC-Chatrooms, um dieselben zu implementieren.Hinzufügen von Teilnehmern zu XMPP-Chatrooms

Hier möchte ich eine Liste von Mitgliedern (ich habe die JIDs) in den Raum hinzufügen. Ich möchte sie intern zu allen Mitgliedern in der Liste hinzufügen. Wie kann ich sie hinzufügen, ohne sie einzuladen?

Und nach dem Hinzufügen der Mitglieder möchte ich eine Funktionalität implementieren, die jedes Mal, wenn ein Benutzer der Chat-Room-Nachrichten oder Chat, sollte es an alle anderen Benutzer geliefert werden.

Das Hauptproblem ist, wie die Mitglieder an den Chat-Raum

Code hinzufügen:

private void createRoom(){ 

     MultiUserChat privateRoom = new MultiUserChat(connection, "[email protected]"); 
     try { 
      privateRoom.join("gaurav","123456"); 
      privateRoom.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); 
      System.out.println("Room Created!!!"); 

      Message message = new Message("[email protected]", Message.Type.normal); 
      message.setBody("Happy User"); 

      privateRoom.sendMessage(message); 



     } catch (XMPPException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

Antwort

2

XEP-0045 enthält kein Szenario, in dem ein Kunde mit Gewalt einen Teilnehmer eines Chat-Raum gemacht. Sie können zwar eine Einladung an einen Kontakt senden (entweder direkt an den Benutzer oder über den MUC-Server), der Kontakt tritt jedoch erst dann dem Chat-Raum bei, wenn der Kontakt des Kontakts den Raum anfordert.

Das Hinzufügen eines Benutzers zu einem Chat-Room ohne Einladung erfordert daher spezielle Unterstützung im Client des Benutzers. Möglicherweise könnte der Client so geändert werden, dass Chat-Room-Einladungen von vertrauenswürdigen Kontakten automatisch akzeptiert werden.

+0

Können Sie bitte einen Mechanismus vorschlagen, um den USER zum Gruppenchat einzuladen? Ich verwende einen Code, mit dem ich den Benutzer einladen kann, aber der andere Endbenutzer erhält keine Einladung (die im Einladungs-Listener abgehört werden kann). –

+0

Ich würde das "Direct MUC Invitations" -Protokoll verwenden, das in [XEP-0249] (http://xmpp.org/extensions/xep-0249.html) beschrieben ist. Dies ist die Methode, die in [XEP-0045, Abschnitt 7.8] (http://xmpp.org/extensions/xep-0045.html#invite) für die meisten Fälle empfohlen wird und eine bessere Chance haben sollte, zum anderen Benutzer zu gelangen. – legoscia