0

基本構成で tigase7.0.2 をインストールしました。

今、私は次のコードでインストールされたサーバーを使用してMUCを実行しています:

ルーム作成用

MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);
MultiUserChat muc = MainActivity.manager.getMultiUserChat("myroom@muc." + connection.getServiceName());

ルームに参加するには

    muc = MainActivity.manager.getMultiUserChat("myroom@muc." + connection.getServiceName());
    muc.join(connection.getUser().split("@")[0]);
    muc.addMessageListener(new MessageListener() {
   @Override
   public void processMessage(final Message message) {
           runOnUiThread(new Runnable() {
           @Override
           public void run() {
          Toast.makeText(UserListActivity.this, message.getFrom() + ":" + message.getBody(), Toast.LENGTH_SHORT).show();
    }
       });
    }
   });

ルームに参加すると、トーストに次のメッセージが表示されます。

: Room is locked. Please configure.
: Welcome! You created new Multi User Chat Room. Room is locked now. Configure it please!

ルームに参加すると、ログに次のエラーが表示されます。

4

1 に答える 1

0

最初に MUC ルームを作成すると、構成するまで「ロック」されます。ルームを設定するには 2 つの方法があります。デフォルトの設定を受け入れるか(これは「インスタント」ルームと呼ばれます)、必要な設定を指定します。

インスタント ルームの作成については、 XEP-0045 のセクション 10.1.2 で説明されています。

<iq from='crone1@shakespeare.lit/desktop'
    id='create1'
    to='coven@chat.shakespeare.lit'
    type='set'>
  <query xmlns='http://jabber.org/protocol/muc#owner'>
    <x xmlns='jabber:x:data' type='submit'/>
  </query>
</iq>

つまり、 MUC 所有者名前空間の要素を含み、フォーム「送信」のみをset含む、 type の IQ メッセージを送信します。これは、この回答queryにも記載されています。

ルームに特定の構成を使用するには、 XEP-0045 のセクション 10.1.3 を参照してください。最初に構成フォームをリクエストして、サポートされているオプションを確認し、必要な設定を記入してください。 この回答では、パブリックで永続的なルームを作成する方法について説明しています。

于 2016-01-23T14:55:13.880 に答える