跳转到主要内容

概念解释

什么是频道?

频道(Channel)是 WuKongIM 中消息传输的载体,定义了消息的发送目标和接收范围。每个频道都有唯一的标识符和类型,用于组织和管理不同的通讯场景。

为什么频道很重要?

  • 消息路由:频道决定了消息发送到哪里,是消息传输的基础
  • 权限控制:不同类型的频道有不同的权限和管理规则
  • 场景区分:通过频道类型区分一对一聊天和群组聊天等不同场景

与其他概念的关系

  • 消息(Message):所有消息都必须指定目标频道才能发送
  • 用户(User):用户通过频道进行交流,可以是频道的创建者或参与者
  • 会话(Conversation):每个会话对应一个频道,会话列表实际上是用户参与的频道列表

核心结构

频道是消息传输的载体,包含以下核心属性:
属性类型说明
channel_idstring频道唯一标识符
channel_typeinteger频道类型(1=个人,2=群组)
largeinteger大频道标识(0=否,1=是)
baninteger禁用状态(0=否,1=是)
disbandinteger解散状态(0=否,1=是)

频道类型

  • 个人频道 (1):一对一私聊
  • 群组频道 (2):多人群组聊天
  • 客服频道(3): 客服频道,不做权限判断
  • 社区频道(4): 社区频道,类似discord的频道
  • 社区话题频道(5): 社区话题频道,类似discord的频道下的子频道
  • 资讯频道(6): 资讯频道(有临时订阅者的概念,查看资讯的时候加入临时订阅,退出资讯的时候退出临时订阅)
  • 直播频道(9): 直播频道(直播频道不会保存最近会话数据)
  • 访客频道(10): 访客频道 (频道id即为访客id,此频道只支持一个访客订阅者,多个客服订阅者,可以取代客服频道用于客服场景)
  • 单聊Agent频道(11): 单聊Agent频道(AI Agent频道,频道ID内部结构为UID@AgentID的结构,类似单聊频道,此频道会针对于AI Agent场景做优化)
  • 群聊Agent频道(12): 群聊Agent频道(AI Agent群聊频道,类似群聊频道,此频道会针对于多Agent协同场景做优化)

频道示例

{
  "channel_id": "group123",
  "channel_type": 2,
  "large": 1,
  "ban": 0,
  "disband": 0
}

相关 API 端点

端点方法说明
/channelPOST创建频道
/channel/infoPOST获取频道信息
/channel/deleteDELETE删除频道
/channel/subscriber_addPOST添加订阅者
/channel/subscriber_removePOST移除订阅者
/channel/messagesyncPOST同步频道消息

EasySDK 代码示例

发送消息到不同类型频道

import { WKIM, WKIMChannelType } from 'easyjssdk';

const im = WKIM.init("ws://your-server.com:5200", {
  uid: "your_user_id",
  token: "your_token"
});

// 发送到个人频道(一对一聊天)
const personalPayload = {
  type: 1,
  content: "Hello!"
};
await im.send("user123", WKIMChannelType.Person, personalPayload);

// 发送到群组频道(群聊)
const groupPayload = {
  type: 1,
  content: "Hello everyone!"
};
await im.send("group123", WKIMChannelType.Group, groupPayload);

频道类型说明

个人频道 (person)
  • channelId 为对方用户的 ID
  • 用于一对一私聊
  • 例如:发送给用户 “user123”,channelId 就是 “user123”
群组频道 (group)
  • channelId 为群组的 ID
  • 用于多人群组聊天
  • 例如:发送到群组 “group123”,channelId 就是 “group123”
频道通过 channel_idchannel_type 组合唯一标识,是消息传输的基础载体。