2012-12-31 14 views
8

Chcę zaimplementować czat grupowy w mojej aplikacji, w tym celu korzystam z pokojów rozmów MUC, aby zaimplementować to samo.Dodawanie uczestników do pokojów czatu XMPP

Tutaj chcę dodać listę członków (mam JID) do pokoju. Chcę dodać je wewnętrznie do wszystkich członków na liście. Jak mogę je dodać bez zaproszenia ich.

Po dodaniu członków chcę zaimplementować funkcję, która za każdym razem, gdy użytkownik będzie komunikował się z pokojem czatu lub czatem, powinna zostać dostarczona wszystkim pozostałym użytkownikom.

Głównym problemem jest to, jak dodać członków do czacie kod

:

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(); 
     } 

    } 

Odpowiedz

2

XEP-0045 nie zawiera scenariusz, w którym klient jest przymusowo wykonany uczestnik czacie. Podczas gdy możesz wysłać zaproszenie do kontaktu (bezpośrednio do użytkownika lub poprzez serwer MUC), kontakt nie dołącza do pokoju rozmów, dopóki klient kontaktu nie poprosi o dołączenie do pokoju.

W ten sposób dodanie użytkownika do pokoju rozmów bez zaproszenia ich wymaga specjalnej pomocy w kliencie użytkownika. Być może klient może zostać zmodyfikowany, aby automatycznie akceptował zaproszenia do pokojów rozmów sieciowych od zaufanych kontaktów.

+0

Czy możesz zaproponować mechanizm, aby zaprosić użytkownika USER do czatu grupowego? Używam kodu, za pomocą którego mogę zaprosić użytkownika, ale drugi użytkownik końcowy nie otrzymuje żadnego zaproszenia (które można wysłuchać w programie nasłuchującym zaproszenie). –

+0

Korzystałbym z protokołu "Direct MUC Invitations" opisanego w [XEP-0249] (http://xmpp.org/extensions/xep-0249.html). Taka metoda jest zalecana w większości przypadków w [XEP-0045, sekcja 7.8] (http://xmpp.org/extensions/xep-0045.html#invite) i powinna mieć większe szanse na dotarcie do drugiego użytkownika. – legoscia