1、在chatRoomImp.java下增加自己的消息监听器
也就是说初始化聊天的时候就监听自己的自定义消息,当然监听时机自己把握。
直接在构造函数中添加自己的自定义消息监听器
ProviderManager.getInstance().addExtensionProvider("cImg", "hbhl:xmpp:image", new ImageBase64Provider());
2、在org.jivesoftware.spark.ui.TranscriptWindow.java中定义如何解析自己的消息
为何在此定义解析方式,因为我的消息是让其显示的,具体说来就是图片。不是那些后台消息。后台消息不在这里定义解析。
找到
public void insertMessage(String nickname, Message message, Color foreground, Color background)
方法中添加自定义的解析方法
if (ModelUtil.hasLength(body)) {
PacketExtension ext = message.getExtension("cImg", "hbhl:xmpp:image");
if (ext != null) {
ImageBase64Message image = (ImageBase64Message) ext;
ImageIcon icon = new ImageIcon(Base64.decodeBase64(image.getEncode().getBytes()));
insertIcon(icon);
try {
insertText("\n");
} catch (BadLocationException e) {
}
}else{
}
}
3、完成。已经可以解析发送的图片了。
当然发送图片,组装编码这些都没写出来,后期我会专门写专题来解决大家文件发送,图片发送等问题的。