Skip to content

频道管理

频道(Channel)WuKongIM 中是一个比较抽象的概念。发送消息都是先发送给频道,频道根据自己的配置规则进行投递消息,频道分频道和频道详情。 更多介绍请移步什么是频道

数据源

需要实现获取频道资料的数据源 获取频道资料数据源

频道资料

获取频道资料

Java

java
// 获取channel信息 先获取内存 如果没有再从数据库获取
WKIM.getInstance().getChannelManager().getChannel(String channelID, byte channelType)

Kotlin

kotlin
// 获取channel信息 先获取内存 如果没有再从数据库获取
WKIM.getInstance().channelManager.getChannel(channelID,channelType)

强制刷新频道资料

Java

java
// 从远程服务器获取channel信息
WKIM.getInstance().getChannelManager().fetchChannelInfo(String channelID, byte channelType)

Kotlin

kotlin
// 从远程服务器获取channel信息
WKIM.getInstance().channelManager.fetchChannelInfo(channelID,channelType)

事件

刷新频道资料

Java

java
// 监听channel刷新事件
WKIM.getInstance().getChannelManager().addOnRefreshChannelInfo("key", new IRefreshChannel() {
            @Override
            public void onRefreshChannel(WKChannel channel, boolean isEnd) {
                //
            }
        });

// 移除监听
WKIM.getInstance().getChannelManager().removeRefreshChannelInfo("key");

Kotlin

kotlin
// 监听channel刷新事件
WKIM.getInstance().channelManager.addOnRefreshChannelInfo("key", object : IRefreshChannel {
            override fun onRefreshChannel(channel: WKChannel, isEnd: Boolean) {
                //
            }
        })

// 移除监听
WKIM.getInstance().channelManager.removeRefreshChannelInfo("key");

频道头像更新

java

java
// 监听频道头像更新事件
WKIM.getInstance().getChannelManager().addOnRefreshChannelAvatar( new IRefreshChannelAvatar() {
            @Override
            public void onRefreshChannelAvatar(String channelID, byte channelType) {
                // 头像需要本地修改
                String key = UUID.randomUUID().toString().replace("-", "");
                WKIM.getInstance().getChannelManager().updateAvatarCacheKey(s, b, key);
            }
        });

kotlin

kotlin
// 监听频道头像更新事件
WKIM.getInstance().channelManager.addOnUpdateChannelAvatar("key", object : IRefreshChannelAvatar {
            override fun onRefreshChannelAvatar(channelID: String, channelType: Int) {
                //
            }
        })

// 移除监听
WKIM.getInstance().channelManager.removeUpdateChannelAvatar("key");

常用方法

修改备注

Java

java
// 修改频道备注
WKIM.getInstance().getChannelManager().updateRemark(String channelID, byte channelType, String remark)

Kotlin

kotlin
// 修改频道备注
WKIM.getInstance().channelManager.updateRemark(channelID, channelType, remark)

置顶/取消置顶

Java

java
// 置顶频道 1.置顶 0.取消置顶
WKIM.getInstance().getChannelManager().updateTop(String channelID, byte channelType, int isTop)

Kotlin

kotlin
// 置顶频道
WKIM.getInstance().channelManager.setTopChannel(channelID, channelType, isTop)

保存频道资料

java

java
// 保存频道资料
WKIM.getInstance().getChannelManager().saveOrUpdateChannel(WKChannel channel)

// 批量保存频道资料
WKIM.getInstance().getChannelManager().saveOrUpdateChannels(List<WKChannel> list)

kotlin

kotlin
// 保存频道资料
WKIM.getInstance().channelManager.saveOrUpdateChannel(channel)

// 批量保存频道资料
WKIM.getInstance().channelManager.saveOrUpdateChannels( list)

数据结构说明

频道属性

java
public class WKChannel {
    // 频道ID
    public String channelID;
    // 频道类型 1.为单聊 2.为群聊
    public byte channelType;
    // 频道名称
    public String channelName;
    // 频道备注(频道的备注名称,个人的话就是个人备注,群的话就是群别名)
    public String channelRemark;
    // 频道头像
    public String avatar;
    // 是否置顶
    public int top;
    // 免打扰
    public int mute;
    // 是否禁言
    public int forbidden;
    // 远程扩展
    public HashMap remoteExtraMap;
    // 本地扩展字段
    public HashMap extraMap;
}

本文档内容版权属于 上海信必达网络科技有限公司,保留所有权利