Web

频道管理

更新时间: 2024/03/14 19:21:15

NIM SDK 的QChatChannelServiceInterface提供管理频道的方法,支持创建、修改、查询和删除频道。

前提条件

创建服务器

使用限制

单个服务器的频道数量上限默认为 100 个。

若需要扩展上限,可在控制台配置圈组子功能项(单 server 可创建的 channel 数),具体请参考开通和配置圈组功能

实现方法

创建频道

调用createChannel方法在某个服务器下创建频道。

  • 调用时可配置是否对传入的频道资料信息进行内容审核
  • 除消息(message)频道外,9.3.0 版本新增支持创建实时互动频道类型media),创建频道时可通过 EChannelInfoType 枚举来选择频道类型。
  • 调用时可设置频道的同步模式 syncMode,0 为不同步频道分组的配置(默认),1 为同步频道分组的配置。只有将同步模式设置为不同步,才能单独设置频道的查看模式 viewMode
  • 调用时可设置频道的查看模式 viewMode,0 为公开模式(默认),1 为私密模式。公开频道对未被加入该频道的黑名单的用户均可见;私密频道只对该频道白名单中的用户可见。

    如果设置为同步模式(syncMode=1),那么无法单独设置频道的查看模式(该情况下若设置查看模式将会报 414 错误)。

  • 调用时可通过visitorMode设置该频道是否对游客可见:
    • 0:对游客可见
    • 1:对游客不可见
    • 2:跟随模式(默认),即如果该频道的查看模式(viewMode)被设置为“公开”则该频道对游客可见,如果被设置为“私密”则对游客不可见
    如果频道的visitorMode为跟随模式,且同步模式(syncMode)为“与频道分组同步”,则当该频道所属的频道分组的查看模式(viewMode)变更后,该频道对游客的可见性也将变更。例如,在这种情况下,频道分组的查看模式由公开变为私密,则此时该频道对游客从“可见”变为“不可见”。

示例代码如下:

const qchat = new QChat(options);
qchat.qchatChannel.createChannel({
  "serverId": "12345",
  "name": "1"
})

修改频道

调用updateChannel方法修改某个频道的信息,如查看模式(公开或私密)、频道名称、频道主题、是否对游客可见、自定义扩展字段等,还可配置是否对修改的频道资料信息进行内容审核

示例代码如下:

const qchat = new QChat(options);
qchat.qchatChannel.updateChannel({
  "serverId": "12345",
  "name":"123"
})

删除频道

调用deleteChannel方法可将某个频道删除。

示例代码如下:

const qchat = new QChat(options);
qchat.qchatChannel.deleteChannel({
  "serverId": "12345"
})

频道查询

分页查询频道列表

用户进入服务器后,如果想要获取当前服务器已有(且对该用户可见)的频道,可调用getChannelsByPage方法分页查询频道列表。

示例代码如下:

const qchat = new QChat(options);
qchat.qchatChannel.getChannelsByPage({
  "serverId": "934978",
  "timetag": 0,
  "limit": 0
})

根据频道 ID 查询频道列表

用户进入服务器后,如果想要检索当前服务器的频道,可调用getChannels方法根据频道的 ID 进行检索。

示例代码如下:

const qchat = new QChat(options);
qchat.qchatChannel.getChannels({
  "channelIds": ["12345"]
})

分页查询频道成员

用户进入频道后,如果想要检索当前频道的成员有哪些(换而言之,当前频道对哪些用户可见),可调用getMembersByPage方法可分页查询频道成员列表。

示例代码如下:

const qchat = new QChat(options);
qchat.qchatChannel.getMembersByPage({
  "serverId": "934978",
  "channelId": "869553",
  "timetag": 0,
  "limit": 100
})

查询频道未读信息

用户进入服务器后,如果想获取频道的未读信息(包括未读数和未读状态),可调用getChannelUnreadInfos方法进行查询。

示例代码如下:

const qchat = new QChat({...})
qchat.qchatChannel.getChannelUnreadInfos({"channels": [
    {
      "serverId": "YOUR_SEVERID",
      "channelId": "YOUR_CHANNELID"
    }
  ]})

频道未读数管理的更多相关逻辑介绍,请参见频道未读数管理

频道资料内容审核

创建或修改频道时,如果通过AntispamTag配置了 antiSpamBusinessId, 那么云信将会对频道资料进行安全通内容审核。antiSpamBusinessId 代表安全通默认内容审核业务以外的自定义内容审核的业务 ID;如需新增自定义内容审核,请联系商务经理进行相关配置,然后前往云信控制台的安全通配置界面获取该业务 ID。

更多圈组内容审核相关说明,请参见圈组内容审核

此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 使用限制
  • 实现方法
  • 创建频道
  • 修改频道
  • 删除频道
  • 频道查询
  • 分页查询频道列表
  • 根据频道 ID 查询频道列表
  • 分页查询频道成员
  • 查询频道未读信息
  • 频道资料内容审核