评测 - 为你的社区添加 Discord 风格的视频和语音房间及通话 🎙

重要提示:自 2026 年 9 月 1 日起,该插件已作为 Discourse 核心捆绑插件 集成,并更名为“Voice”。您现在只需在管理页面中启用它即可。

大家好!分享一款新插件 Resenha,它直接在 Discourse 中添加了语音和视频聊天室——无需外部应用,仅需在侧边栏中使用点对点 WebRTC 即可。

在线试用

:point_right: https://discourse-on-a-pi5.falco.dev/

工作原理

点击侧边栏中的房间即可加入,再次点击即可离开。默认情况下,所有媒体数据均通过 WebRTC 以点对点方式传输——您的 Discourse 服务器仅处理信令,绝不处理媒体数据。需要支持更大规模通话的网站可以选择将房间通过 LiveKit 媒体服务器进行路由——无论是 LiveKit 云还是自托管服务器均可。安装时会默认创建一个“Watercooler”(茶水间)房间,以便您的社区可以立即开始交流。

功能特性

  • 侧边栏优先的用户体验 — 房间和实时参与者头像直接显示在侧边栏中,风格类似 Discord,并带有动画说话指示器
  • 视频和屏幕共享 — 支持可选的摄像头视频和屏幕/标签页共享,拥有完整的房间页面、平铺/演示布局以及全屏支持
  • 持久化通话小组件 — 一个停靠且可调整大小的迷你通话窗口,在您浏览论坛时跟随您,包含视频
  • 语音和视频设置 — 设备选择器、实时麦克风测试、输入灵敏度门限、WebAssembly 噪声抑制(DTLN)以及 MediaPipe 背景模糊——所有处理均在浏览器本地完成
  • 房间聊天 — 每个房间都配有基于真实 Discourse 聊天频道和线程的文本聊天
  • 舞台房间 — 带有发言请求队列的演讲者/观众房间,适用于 AMA(问我任何事)和社区通话
  • 房间权限 — 支持公开、组限制和私有房间,侧边栏中有锁定徽章,并可通过房间标签在帖子中链接房间
  • 参与者控制 — 上下文菜单支持针对每个用户的音量调节、静音、失聪和踢出;此外还有 AFK 自动静音/断开连接以及自动用户状态
  • 房间管理 — 通过组控制用户创建房间、员工 CRUD 界面,以及用于程序化控制的完整 REST API
  • 默认零基础设施 — 纯浏览器 WebRTC,采用 DTLS-SRTP 加密,无需 SFU/MCU
  • 可选的 LiveKit 集成 — 可单独将房间接入,或将所有通话通过 LiveKit 云或您自己的 LiveKit 服务器进行路由以支持大型通话,并配有管理员健康面板和基于 Webhook 的对账机制

状态

我们内部会议已经使用此插件数周了,对于小团体来说运行得非常出色。较大的团体可能希望将其与 LiveKit 一起部署,但通常最多 10 名参与者的规模在默认网状网络配置下运行得非常良好。

安装

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/xfalcox/resenha.git

在 管理 > 设置 > 插件 > resenha enabled 中启用。

欢迎反馈

这是一款新插件——欢迎在此主题中提出错误报告、想法和问题。也欢迎提交 PR!


注意:这不是 official 插件。

57 个赞

评论,太棒了,我喜欢,谢谢我的老乡

12 个赞

我刚刚安装了它,大约半小时内就运行起来了。看起来运行良好!希望看到一些功能更改/添加:

功能 状态
重命名房间 :cross_mark: 未实现
删除房间 :cross_mark: 未实现
更改默认房间名称 :cross_mark: 硬编码
将房间与 Discourse 类别关联 :cross_mark: 不支持
设置房间权限 :cross_mark: 不支持
创建自动过期房间 :cross_mark: 不支持
房间描述/主题 :cross_mark: 不支持
10 个赞

这太棒了。团队有什么计划在它走出 alpha 阶段后将其正式化吗?

7 个赞

目前没有计划,因为这主要是在探索该技术的可能性以及它如何与 Discourse 集成。

不过,和所有其他事情一样,这取决于我们的客户想要什么。

9 个赞

这太棒了,Falco!我可以看到你所列出的许多应用。像这样的功能插件绝对有助于使 Discourse Meta 成为首选平台!

4 个赞

创建新房间的选项在哪里?

由于这是一个关于该技术的实验性项目,而不是为生产站点准备的现成解决方案,因此没有用户界面。

2 个赞

experimental 目前不应该存在吗?

很棒的插件

3 个赞

我试用了这个功能几天了——它太棒了!!!

它完美地解决了将论坛/聊天讨论轻松“升级”为口头对话的问题。多年来,我一直在努力在切换到其他平台或使用资源密集型的(试图集成的)视频会议之间挣扎。

如果您决定进一步发展它,我希望它能够设计为与聊天集成。能够直接从聊天中为聊天成员启动私人语音房间将是绝对美妙的(并在之后进行整理以保持整洁)。而聊天仍然是插入附加评论、文件、链接等的完美场所。

锦上添花的功能当然是:

  1. 视频选项(可能使用如此轻量级的技术在技术上不可行)

  2. 人工智能转录,足够智能,可以整合相关主题和聊天内容。作为会议记录员,这将是绝对惊人的。

11 个赞

感谢您的反馈!这正是我做这个的目标!

当然,这将是合乎逻辑的下一步,并辅以临时房间来备份。

这是非常可行的,对于上传足够好的人来说,可以不使用 SFU/MCU,或者可以提供可选支持。

7 个赞

这太完美了,我不会在很长一段时间内更新,但二月份我会在 ESR 发布时最后一次更新,以便包含此插件。

我对此感到非常兴奋,我希望它能实现。

2 个赞

“饮水机”聊天室的图标能改成 bottle-water 吗?

3 个赞

现在有了管理房间的用户界面。

10 个赞

感谢 Falco 提供的这个插件 :heart:

这是很棒的工作 :+1:

1 个赞

我在生产环境中进行测试,稍后会提供反馈!让我们来评论一下 :brazil:

1 个赞

也许在这种情况下使用一个环(ring)会更好?当我身处一个房间中并点击我自己的个人资料或其他人的个人资料时,DOM 刷新会返回主页。

现在有了一个使用 Discourse Chat 的烤串菜单模式的房间详情屏幕

2 个赞

在默认主题上它没有重叠,也许调整一下你的主题以处理较少的间距?

image

这现在已修复。

3 个赞

鉴于最近的新闻,我在插件中添加了一个新功能:一个由人工智能驱动的降噪过滤器。

管理员可以通过站点设置(默认:关闭)使其可用,然后用户可以通过在语音聊天室中点击他们自己的用户来选择启用它。

6 个赞