我正在开发一个openfire插件并且一度停留。
以下是我的插件代码。我已经实现了 MUCEventListener ,我也得到了回调。但现在我想从 messageReceived()方法中的 roomJID 中获取占用者列表。研究很多但没有成功。请有人让我突破。
public class OfflineMessageTrigger implements Plugin,
MUCEventListener {
private static final Logger Log = LoggerFactory
.getLogger(OfflineMessageTrigger.class);
public OfflineMessageTrigger() {
}
// Plugin Interface
public void initializePlugin(PluginManager manager, File pluginDirectory) {
MUCEventDispatcher.addListener(this);
}
public void destroyPlugin() {
MUCEventDispatcher.removeListener(this);
}
@Override
public void roomCreated(JID roomJID) {
Log.debug("TASOL-OfflineMessageTrigger -> MUC -> roomCreated(): "
+ "RoomID : " + roomJID);
}
@Override
public void roomDestroyed(JID roomJID) {
Log.debug("TASOL-OfflineMessageTrigger -> MUC -> roomDestroyed(): "
+ "RoomID : " + roomJID);
}
@Override
public void occupantJoined(JID roomJID, JID user, String nickname) {
Log.debug("TASOL-OfflineMessageTrigger -> MUC -> occupantJoined(): "
+ "RoomID : " + roomJID + " UserID : " + user + " NickName : "
+ nickname);
}
@Override
public void occupantLeft(JID roomJID, JID user) {
Log.debug("TASOL-OfflineMessageTrigger -> MUC -> occupantLeft(): "
+ "RoomID : " + roomJID + " UserID : " + user);
}
@Override
public void nicknameChanged(JID roomJID, JID user, String oldNickname,
String newNickname) {
}
@Override
public void messageReceived(JID roomJID, JID user, String nickname,
Message message) {
// HERE I WANT TO FETCH OCCUPANTS LIST OF "roomJID". HOW TO GET?
}
@Override
public void privateMessageRecieved(JID toJID, JID fromJID, Message message) {
}
@Override
public void roomSubjectChanged(JID roomJID, JID user, String newSubject) {
}
}
由于 Biraj Zalavadia。
答案 0 :(得分:1)
似乎这个问题已在Openfire论坛上得到解决。所以这里是线程的链接,以防有人在Stackoverflow上搜索解决方案:https://igniterealtime.jiveon.com/thread/52016