2012-12-31 16 views
8

自分のアプリケーションにグループチャットを実装したいのですが、その目的のためにMUCチャットルームを使用して同じものを実装しています。XMPPチャットルームに参加者を追加する

ここでは、メンバーのリスト(私はJIDを持っている)を部屋に追加したいと思います。 リスト内のすべてのメンバーにそれらを内部的に追加したいと思います。どのように私はそれらを招待せずに追加することができます。

メンバーを追加した後、チャットルームのユーザーがチャットルームやチャットを行うたびに、それを他のすべてのユーザーに配信する機能を実装したいと考えています。

主な問題は、チャットルームに

コードメンバーを追加する方法です:

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

    } 

答えて

2

XEP-0045は、クライアントが強制的にチャットルームの参加者を作られたシナリオが含まれていませんが。連絡先への招待状(ユーザーまたはMUCサーバー経由で直接)を送信することはできますが、連絡先のクライアントが会議室に参加することを要求するまで、連絡先は実際にはチャットルームに参加しません。

したがって、招待せずにチャットルームにユーザーを追加するには、ユーザーのクライアントで特別なサポートが必要です。おそらく、クライアントは、信頼できる連絡先からのチャットルームの招待を自動的に受け入れるように変更することができます。

+0

チャットをグループに招待する仕組みをお勧めしますか?私はユーザーを招待できるコードを使用していますが、他のエンドユーザーは招待状(招待状のリスナーで聴くことができます)を受信して​​いません。 –

+0

[XEP-0249](http://xmpp.org/extensions/xep-0249.html)に記載されている「Direct MUC Invitations」プロトコルを使用します。それは[XEP-0045、セクション7.8](http://xmpp.org/extensions/xep-0045.html#invite)のほとんどの場合に推奨される方法であり、他のユーザーに到達する可能性が高くなります。 – legoscia

関連する問題