聊天室管理

聊天室是“在线态会话”:消息不落库、不补发,断连自动离开。控制台提供房间列表(含 keepalive、在线人数、全体禁言状态)、销毁与全员禁言。

概念​

能力行为错误码
销毁房间踢出在线成员、广播 chatroom_event(destroyed)、触发 chatroom.destroyed 回调,并记录审计已销毁/不存在返回 1012/1013
全员禁言{muted:true,durationSec} 最长 30 天;muted:false 解除时长越界 1001
列表返回房间基础信息 + keepalive/keepaliveUntil + 在线人数 + 全体禁言状态—
服务开通联动

应用未开通 chatroom 时,Open API 聊天室接口与客户端 REST 建聊天室返回 1021;控制台列表仍可查看历史房间。

前置条件​

  • 服务端已启动(默认 http://127.0.0.1:8080),控制台入口 http://127.0.0.1:8080/console/#chatrooms。
  • 已设置 X-Admin-Secret(默认 dev-admin;控制台会保存在浏览器 localStorage 的 im.admin.secret)。
  • 已创建应用并在控制台顶部选中应用(模块接口路径都带 {appkey})。
  • 已开通 chatroom 服务(否则相关业务接口 1021)。

步骤​

  1. 查看房间列表

    确认目标 chatroomId 与在线人数;在线人数来自房间会话计数(多端同房按会话计)。

  2. 处置违规房间

    销毁会立即断开房间内连接并广播事件;如需保留房间只禁言,用全员禁言。

  3. 解除禁言

    再次调用全员禁言接口,muted:false。

参数表​

操作方法与路径请求体
房间列表GET /api/admin/apps/{appkey}/chatrooms—
销毁房间POST /api/admin/apps/{appkey}/chatrooms/{chatroom_id}/destroy{reason?}(缺省 admin_destroy)
全员禁言POST /api/admin/apps/{appkey}/chatrooms/{chatroom_id}/mute-all{muted,durationSec?}

示例​

列表 → 全员禁言 1 小时 → 解除 → 销毁​

Shell
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/chatrooms" \
  -H 'X-Admin-Secret: dev-admin'

curl -sS -X POST "http://127.0.0.1:8080/api/admin/apps/demo/chatrooms/cr_2001/mute-all" \
  -H 'X-Admin-Secret: dev-admin' \
  -H 'content-type: application/json' \
  -d '{"muted":true,"durationSec":3600}'

curl -sS -X POST "http://127.0.0.1:8080/api/admin/apps/demo/chatrooms/cr_2001/mute-all" \
  -H 'X-Admin-Secret: dev-admin' \
  -H 'content-type: application/json' \
  -d '{"muted":false}'

curl -sS -X POST "http://127.0.0.1:8080/api/admin/apps/demo/chatrooms/cr_2001/destroy" \
  -H 'X-Admin-Secret: dev-admin' \
  -H 'content-type: application/json' \
  -d '{"reason":"violation"}'

常见问题​

销毁后还能恢复吗?​

不能。聊天室不含历史消息,销毁即结束;需要长期留存请用群组。

为什么列表在线人数为 0?​

房间无在线连接;聊天室成员只在连接期间存在,断连即离开。

全员禁言对管理员生效吗?​

对房间内所有普通成员生效;管理员处置请用 Open API 白名单或单独成员禁言能力。

相关链接​