域、频道与访客
域是什么
一个「域」(Domain)就是一个独立的语音空间。可以理解成 Discord 的一个服务器,或者一个公会。
每个域里包含:
- 若干语音频道——进去就是语音房间
- 若干文字频道——发消息的地方
- 一套成员和角色——这个域自己的,跟别的域无关
一个人可以加入多个域,在每个域里的身份可以不一样。你在自己的域是管理员,去朋友的域就是普通成员。
建域
登录后左侧栏点「域」,右上角新建。
创建者自动成为这个域的 owner,拥有域内最高权限。
建域需要
domain:create权限,普通用户默认就有。
频道
建频道
进域之后,在频道列表区域新建。可以选:
| 类型 | 用途 |
|---|---|
| 语音频道 | 进去说话,有成员方块和发言检测 |
| 文字频道 | 发消息、发表情、回复 |
频道的限制
建频道时可以设:
- 密码:进频道要输密码
- 人数上限:满了就进不去
- 仅音频:关掉视频(默认就只开音频)
频道和房间的关系
界面上看到的是「频道」,底层对应的是 LiveKit 的「房间」。一个语音频道同一时间对应一个房间,所有人进去就是进同一个房间。
邀请别人进来
域里有「分享链接」入口,能生成邀请链接:
https://你的域名/invite/d/<邀请码>别人打开链接就能加入这个域。邀请码可以重置——重置后旧链接立刻失效,适合链接外泄的场景。
需要 domain:invite 权限才能生成。
成员管理
域角色
每个域内部独立一套角色:
| 角色 | 说明 |
|---|---|
owner | 建域的人。最高权限,不能把自己踢掉 |
admin | 域管理员,能管频道和成员 |
member | 普通成员,正常听和说 |
guest | 访客,权限由域开关决定 |
能做的操作
- 踢出:把人移出域,需要
domain:kick - 改角色:给成员分配域内角色,需要
domain:role:manage - 禁言:禁止某人在域内发音频
- 封禁:拉黑,不能再进来
访客
访客机制解决一个具体问题:不想注册的人能不能进来听?
适合的场景:公开社区开放试听、活动临时拉人、朋友发个链接让你进来看看。
怎么开
在域设置里有个「访客」板块,三个开关:
| 开关 | 默认 | 打开后 |
|---|---|---|
| 允许访客收听 | 开 | 访客能进来听 |
| 允许访客发言 | 开 | 访客能说话 |
| 允许访客发消息 | 关 | 访客能在文字频道发消息 |
访客是怎么进来的
- 域管理员生成访客邀请码
- 访客打开链接,系统给一个临时账号(
is_guest=true) - 这个账号能用多久、能做什么,由域的开关决定
访客不需要邮箱、不需要密码,也不能改自己的资料。
封禁访客
访客有独立的封禁列表,和正式账号的封禁互不影响。
封了一个访客,他换个浏览器还能再进——因为访客身份不是强绑定的。想彻底拦住,得关掉访客开关,或者要求注册。
清理
访客账号会越攒越多。后台有清理接口,可以按时间批量删掉过期的访客账号:
bash
POST /api/v1/domain/guest/cleanup相关接口
域
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v1/domain/create | 建域(限流 10 次/分钟) |
| POST | /api/v1/domain/list-public | 公开域列表,不用登录 |
| POST | /api/v1/domain/my-domains | 我加入的域 |
| POST | /api/v1/domain/join | 加入 |
| POST | /api/v1/domain/leave | 退出 |
| POST | /api/v1/domain/kick | 踢人 |
| POST | /api/v1/domain/members | 成员列表 |
| POST | /api/v1/domain/reset-invite | 重置邀请码 |
访客
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v1/auth/guest | 用邀请码换访客身份(限流 60 次/小时) |
| POST | /api/v1/domain/guest/config | 读写访客开关 |
| POST | /api/v1/domain/guest/ban | 封禁访客 |
| POST | /api/v1/domain/guest/unban | 解封 |
| POST | /api/v1/domain/guest/ban-list | 封禁列表 |
| POST | /api/v1/domain/guest/cleanup | 清理过期访客 |
