Android Smack 扩展Message消息节点(smack:4.3.4)-扩展消息时间和用户信息

本文介绍如何在Android上使用Smack库4.3.4版本扩展Message消息节点,添加自定义的时间节点AddMessageDate和用户信息节点AddMessageInfo,以满足即时聊天工具中消息时间及用户信息显示的需求。通过代码示例展示了扩展过程和最终效果。
摘要由CSDN通过智能技术生成

Android Smack 扩展Message消息节点(smack:4.3.4)

我们都知道在利用openfire+smack开发即时聊天工具时,由于自带Message消息体的局限性,消息题里面很简单,有些不符合自己的需求。这就需要我们自己去扩展message的消息节点,本文在最新的smack:4.3.4基础上给大家展示扩展Message消息节点date来放置消息时间。

首先,我们来看看Message原始的节点

下面的就是初始的Message节点,我们看到除了自身包含的from、to、type等属性外,只是包含了body子节点,用于放置消息内容,很简单。

<message from='发送方jid' to='接收方jid' type='消息类型(普通消息/群聊)'>
         <body>消息内容</body>
  </message>
我们再来看看要扩展的效果

下面是我们要扩展的最终效果,添加了消息时间的节点,用于放置消息的时间

<message id='76Ws9-11' from='发送方jid' to='接收方jid' type='消息类型(普通消息/群聊)'>
        <body>消息内容</body>
        <date>2019-10-11 10:05</date>
        <userinfo xmlns="com.xml.extension">
            <nickname>菜鸟</nickname>
            <icon>http://www.liaoku.org/</url>
        </userinfo>
</message>
接下来就是正式进入正题,先自定义实现扩展消息时间节点

我相信懂一点儿Java的都能看明白下面扩展消息时间节点AddMessageDate的实现,相关地方都有了注释

package cn.xie.imchat.utils;

import org.jivesoftware.smack.packet.ExtensionElement;

/**
 * message扩展类
 * 扩展前:<message from='发送方jid' to='接收方jid' type='消息类型(普通消息/群聊)'>
 *          <body>消息内容</body>
 *        </message>
 * 扩展后:<message id='76Ws9-11' from='发送方jid' to='接收方jid' type='消息类型(普通消息/群聊)'>
 *          <body>hello 你好</body>
 *          <date>2019-10-11 10:05</date>
 *        </message>
 * @author xiejinbo
 * @date 2019/10/11 0011 10:39
 */
public class AddMessageDate implements ExtensionElement {
   

    //消息时间元素名称
    public static final String Element_DATE = "date";
    //消息时间值(对外开放)
    private String dateText;

    public String getDateText() {
   
        return dateText;
    }

    public void setDateText(String dateText) {
   
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值