Skip to content

域、频道与访客 ​

域是什么 ​

一个「域」(Domain)就是一个独立的语音空间。可以理解成 Discord 的一个服务器,或者一个公会。

每个域里包含:

  • 若干语音频道——进去就是语音房间
  • 若干文字频道——发消息的地方
  • 一套成员和角色——这个域自己的,跟别的域无关

一个人可以加入多个域,在每个域里的身份可以不一样。你在自己的域是管理员,去朋友的域就是普通成员。

建域 ​

登录后左侧栏点「域」,右上角新建。

创建者自动成为这个域的 owner,拥有域内最高权限。

建域需要 domain:create 权限,普通用户默认就有。

频道 ​

建频道 ​

进域之后,在频道列表区域新建。可以选:

类型用途
语音频道进去说话,有成员方块和发言检测
文字频道发消息、发表情、回复

频道的限制 ​

建频道时可以设:

  • 密码:进频道要输密码
  • 人数上限:满了就进不去
  • 仅音频:关掉视频(默认就只开音频)

频道和房间的关系 ​

界面上看到的是「频道」,底层对应的是 LiveKit 的「房间」。一个语音频道同一时间对应一个房间,所有人进去就是进同一个房间。

邀请别人进来 ​

域里有「分享链接」入口,能生成邀请链接:

https://你的域名/invite/d/<邀请码>

别人打开链接就能加入这个域。邀请码可以重置——重置后旧链接立刻失效,适合链接外泄的场景。

需要 domain:invite 权限才能生成。

成员管理 ​

域角色 ​

每个域内部独立一套角色:

角色说明
owner建域的人。最高权限,不能把自己踢掉
admin域管理员,能管频道和成员
member普通成员,正常听和说
guest访客,权限由域开关决定

能做的操作 ​

  • 踢出:把人移出域,需要 domain:kick
  • 改角色:给成员分配域内角色,需要 domain:role:manage
  • 禁言:禁止某人在域内发音频
  • 封禁:拉黑,不能再进来

访客 ​

访客机制解决一个具体问题:不想注册的人能不能进来听?

适合的场景:公开社区开放试听、活动临时拉人、朋友发个链接让你进来看看。

怎么开 ​

在域设置里有个「访客」板块,三个开关:

开关默认打开后
允许访客收听开访客能进来听
允许访客发言开访客能说话
允许访客发消息关访客能在文字频道发消息

访客是怎么进来的 ​

  1. 域管理员生成访客邀请码
  2. 访客打开链接,系统给一个临时账号(is_guest=true)
  3. 这个账号能用多久、能做什么,由域的开关决定

访客不需要邮箱、不需要密码,也不能改自己的资料。

封禁访客 ​

访客有独立的封禁列表,和正式账号的封禁互不影响。

封了一个访客,他换个浏览器还能再进——因为访客身份不是强绑定的。想彻底拦住,得关掉访客开关,或者要求注册。

清理 ​

访客账号会越攒越多。后台有清理接口,可以按时间批量删掉过期的访客账号:

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清理过期访客

下一步 ​

基于 Apache 2.0 许可开源