Discourse Chat (BETA) 介绍

我们允许回复消息,但不支持完整的“Slack 线程”式功能。

目前我们不计划将聊天嵌入到其他网站。

8 个赞

您对移动端的计划是什么?我特别想评估一下这如何能适应我们的工作场所(例如,最终取代 Slack)。

  • 您会通过 Discourse Hub / PWA 网页通知接收消息通知吗?
  • 有没有非基于网页的选项计划?基于网页的聊天应用在移动端似乎有点难推广。

很高兴能试用 Beta 版。 :slight_smile:

5 个赞

我们已经可以了。

我使用 DiscourseHub,它非常好,事实上,与我之前使用 Mattermost 相比,我个人感觉不到任何不足。

我们会根据情况进行评估,但不会先入为主地认为 Discourse Hub / PWA 注定失败。

13 个赞

很高兴听到这个!我必须试试看。如果你已经成功地制作了一个感觉像原生移动应用一样流畅和响应迅速的 PWA 应用,那将是一项巨大的成就!

5 个赞

“我们”是指托管版本吗?我的版本没有显示任何通知。

呃……或者你指的是提及?那些正在显示。我的错……显示所有可能的聊天流量的通知会很麻烦。

我可能应该删除这条评论,再喝杯咖啡。

3 个赞

跟进一下,说实话我印象深刻。有几点明显不是原生应用,这可能是说服人们放弃 Slack 的一个障碍。幸运的是,这些都是 UI 调整:

  • 按钮非常小。通常小 50% 或更多。当我提出将 Discourse 的其余部分用作 PWA 的想法时,其他人提出的主要抱怨是这个,它也适用于这里的 UI。这对于可访问性也是一个问题。
  • 按钮缺少按下状态。在 Android 上,按钮会显示“默认蓝色方块”。这立刻让人感觉像一个网站。至少对我来说,这实际上加剧了滞后感。

但总的来说,干得漂亮!

9 个赞

您好,我想知道用户是否可以退出他们不再想参与的私人聊天?

谢谢。

3 个赞

是的,我们完全计划支持我们现有的守卫,例如忽略和静音,并允许其他用户给我发送私人消息。

7 个赞

据我所知,目前还没有,但已列入路线图。

我的频道列表,以及我一些用户(users)的频道列表,现在有点……过于拥挤了 :wink: 所以,希望这个选项能尽快推出。当然,我知道我们在这里进行测试,但这现在有点像一个两难的境地——应该进行测试,但测试却让聊天无法使用 :sweat_smile:

4 个赞

3个帖子被拆分到一个新主题:个人消息聊天列表太长

昨天对大约 40-50 名用户同时使用我的论坛进行了测试。当时正在进行一场 90 分钟的足球比赛,我们用聊天取代了实时论坛。

鉴于我的团队输了,我收到了很多批评性反馈。这是一个很好的“试金石”。

发现了一些问题。

似乎存在与用户数量相关的问题。一些人报告说他们无法登录,另一些人被踢出。同一批用户稍后没有遇到问题。用户没有收到任何错误消息。

发帖者不喜欢能够在自己的帖子中使用表情符号。他们也不喜欢帖子被合并,如果他们连续发帖 2 或 3 次。他们更喜欢单独的帖子。

少数人难以加入和退出群组。事实证明,这更多是一个 IT 熟练度问题。然而,更清晰的图标/下拉菜单中更好的描述可能会有帮助。

人们喜欢在一个原本开放的论坛上拥有隐私。能够取代一些 WhatsApp 群组。

对他们来说,关键在于(鉴于我将其解释为论坛 = 你想存储的东西,而聊天 = 称裁判为笨蛋)确保聊天是暂时的。例如,删除所有超过 14 天的聊天记录。或者整个聊天室在 14 天后自行销毁。这是隐私方面的一部分。

能够手动删除聊天室也会很棒 :+1:

他们喜欢帖子如何移动到论坛并链接回聊天。

希望这些反馈有帮助 :blush:

16 个赞

同意 - 要“存档”您永远不想在列表中看到的频道(和私人聊天)将非常棒。

2 个赞

非常感谢您的反馈!

可扩展性问题听起来确实令人担忧,我们希望能彻底查明原因,我们绝不希望您在 50 人的聊天中遇到任何明显的问题。您能多告诉我一些关于您的论坛设置的信息吗?Digital Ocean 计划?

这听起来确实是一个合理的设置,默认情况下您不应该能够“自我”反应,就像您不能“自我”点赞一样。已添加到我们的列表中。

当然,我们计划很快添加聊天保留规则。默认情况下,我们考虑将其设置为 90 天,但您肯定可以将其降低到 2 周。

14 个赞

我的社区有相反的需求。我们经常对自己的消息做出反应,尤其是在设置投票时。

例如,我们可以问:

投票 :+1:t3::-1:

然后我们会用这些选项来回应消息,这样其他人只需要点击表情符号即可添加他们的投票。

10 个赞

好的,

我运行的是 Discourse 的 40 美元套餐。该套餐包含 4 个 vCPU、8GB 内存和 60GB 存储空间(目前已使用一半)。这是按照 Discourse 的说明创建的,而不是使用 DO 镜像。

总的来说,这对于我的论坛来说有点大材小用,但对于游戏期间的高流量来说,它相当稳定。游戏期间的访问者在 50-130 人之间(平均约 80 人),在 90 分钟内在一个帖子中大约会产生 600 条回复。

我使用了一些插件,它们似乎不会影响性能。这些插件包括:Legal tools、who is online、patreon、reactions。

我很乐意在几周后进行另一次测试。查看 DO 的仪表板,CPU 使用率峰值在 20%(远低于典型的比赛日),带宽也符合我的预期。

3 个赞

看起来 discourse-math 在聊天中已损坏,至少对于 KaTeX 是这样,而此脚本可以修复它:

脚本
;(function () {
    
var loadScript = require("discourse/lib/load-script").default;

function ensureKaTeX() {
  return loadScript("/plugins/discourse-math/katex/katex.min.js").then(function () {
    return loadScript("/plugins/discourse-math/katex/katex.min.css", {
      css: true,
    }).then(function () {
      return loadScript("/plugins/discourse-math/katex/mhchem.min.js");
    });
  });
}

function decorate(elem) {
  var $elem = $(elem);
  var displayMode = elem.tagName === "DIV";

  if ($elem.data("applied-katex")) {
    return;
  }
  $elem.data("applied-katex", true);

  if ($elem.hasClass("math")) {
    var tag = elem.tagName === "DIV" ? "div" : "span";
    var displayClass = tag === "div" ? "block-math" : "inline-math";
    var text = $elem.text();
    $elem.addClass(`math-container ${displayClass} katex-math`).text("");
    window.katex.render(text, elem, { displayMode });
  }
}

function katex($elem) {
  if (!$elem || !$elem.find) {
    return;
  }

  const mathElems = $elem.find(".math");

  if (mathElems.length > 0) {
    ensureKaTeX().then(function () {
      mathElems.each(function (idx, elem) { decorate(elem) });
    });
  }
}

setInterval(function () {
    Array.from(document.querySelectorAll('.tc-message-container')).forEach(function (el) { katex(Discourse.$(el)) })
}, 1000)

})()
3 个赞

另一个 bug:尝试渲染来自已删除帐户的消息会导致 JavaScript 应用程序崩溃。

重现步骤:

  1. 创建一个与您的帐户分开的测试帐户
  2. 使用该帐户发送聊天消息
  3. 删除该帐户
  4. 使用您的帐户浏览频道
  5. 打开开发者工具并查看错误日志
7 个赞

谢谢插件!

作为管理员,有没有办法删除/移除聊天频道?

1 个赞

它目前正在开发中。请参阅 Jim 的帖子底部:

4 个赞

在类别设置中曾经有一个用于启用或禁用聊天的标志。那个被移除了吗?

2 个赞