我尝试使用Java创建一个多用户聊天室。我正在使用smack库。 以下是我创建多用户聊天室的代码:
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
}
}
}
作为接收到消息的另一方(即不是此多用户聊天室所有者的用户),他能否以某种方式获取上述行中设置的值?
submitForm.setAnswer("muc#roomconfig_roomname", "A nice formatted Room Name");
您看,仅获取房间的JID并不适合显示。我希望可以获得一个字符串,其值为“一个漂亮格式的房间名称”。
我们如何获得这个字符串呢?