Java で multiuserchat を作成しようとしました。私はスマックライブラリを使用しています。multiuserchat を作成するコードは次のとおりです。
MultiUserChat muc = new MultiUserChat(connection, "roomname@somehost");
muc.create("mynickname");
Form form = muc.getConfigurationForm();
Form submitForm = form.createAnswerForm();
submitForm.setAnswer("muc#roomconfig_roomname", "A nice formatted Room Name");
submitForm.setAnswer("muc#roomconfig_roomdesc", "The description. It should be longer.");
muc.sendConfigurationForm(submitForm);
muc.addMessageListener(mucMessageListener); // mucMessageListener is a PacketListener
次に、mucMessageListener を使用して、上記で作成したこの部屋から送信されたメッセージをキャプチャしようとしました。
private PacketListener mucMessageListener = new PacketListener() {
public void processPacket(Packet packet) {
if (packet instanceof Message) {
Message message = (Message) packet;
// this is where I got the problem
}
}
}
他の部分 (この multiuserchat の所有者ではないユーザー) が受信したメッセージとして、上記の行で設定された値を取得できますか?
submitForm.setAnswer("muc#roomconfig_roomname", "A nice formatted Room Name");
おわかりのように、部屋の JID だけを取得することは、ビューにとってあまり良いことではありません。値が「適切な形式の部屋名」である文字列を持つことができると思います。
どうすればそれを得ることができますか?