读书人

XMPP兑现群聊截图(spark+openfire)

发布时间: 2012-08-14 10:39:57 作者: rapoo

XMPP实现群聊截图(spark+openfire)

spark默认的单聊截图模式是利用文件来来进行传递,调用SparkTransferManager.getInstance().sendFile(img.getTmpFile(), getParticipantJID());

调用??? final OutgoingFileTransfer transfer = transferManager
??? ??? ??? ??? .createOutgoingFileTransfer(fullJID);

通过??? transfer.sendFile(file, "Sending file");来进行发送。

?

spark的群聊(临时会议基础上进行改造)却不能使用这种模式来进行文件传递,缺少了文件传递的JID。由此,想出一种简单的方式来通过xmpp来进行传递。

思路很简单:截图后的图片保存到本地,插入到聊天显示框,将图片image转为byte数组,再转为hex存储到String中(自定义标签,如<img>来将转码后的内容保存,方便接受时候截取),利用Message传递时setBody(“转码后的字符串”)。

在群聊接收消息的GroupChatRoom的handleMessagePacket方法进行修改,创建BufferedImag并利用ImageIo将图片写入到指定文件中,具体代码如下:

?转码的具体实现:

?收到消息后的处理:

?解码代码:

?这样,通过byte数组来生成图片,实现群聊截图功能。


XMPP兑现群聊截图(spark+openfire)

读书人网 >开源软件

热点推荐