1

サーバーとして tigase を使用し、Android 側で asmack ライブラリを使用する IM アプリを開発しています。これで、p2p の登録/ログイン/チャットができるようになりましたが、チャット ルームを作成すると、次のような Android 側のコードで問題が発生しました。

XMPPConnection connection = XmppConnectionManager.getInstance().getConnection();
try {
    MultiUserChat muc = new MultiUserChat(connection, "testroom" + "@" +  
        connection.getServiceName());
muc.create("nickname");
    ------
} catch (Exception e) {
e.printStackTrace();
}

muc.create("nickname") を実行した後、常に例外がスローされ、例外情報は次のとおりです: サーバーからの応答がありません。tigase サーバー側では、以下のように etc/init.properties で MUC コンポーネントを有効にしています。

--comp-name-1 = muc
--comp-class-1 = tigase.muc.MUCComponent

質問がAndroidでグループチャット機能を作成し、muc.create()でサーバーからの応答が得られないため、プロジェクトを変更しましたが、 それでも機能しません。理由がわかりません。親切な助けが必要です。

4

1 に答える 1

1

この問題を修正しました。これはクライアント側の私のせいです。サーバー側で構成された MUC サービス名を指定する必要があります。以下のように構成された tigase サービス名とは異なります。

--virt-hosts = localhost  #tigase server name
--external= muc.localhost:muc-pass  #muc.localhost is muc service name

したがって、クライアント側のコードは次のとおりです。

   MultiUserChat muc = new MultiUserChat(connection, roomName  
                + "@muc." + connection.getServiceName());  

@ハイダーに感謝します。

于 2014-03-09T14:04:41.220 に答える