Matrix协议用于聊天

虽然我不是像 @mattdm 那样的客户,但我运行着许多专门用于自由软件的 Discourse 实例,而 Matrix 是社区中使用的主要工具之一。它已成为许多人的主要通信工具,取代了原生的 IRC,因为它还可以与之桥接。然而,Matrix 作为“聊天”工具仍未得到充分利用:它可以做更多的事情,而且迟早会出现基于 Matrix 的联合论坛。很高兴看到 Discourse 在该领域处于领先地位,就像它在 Fediverse 中一样。支持与 Matrix 的聊天互操作将是必需的第一步。

@Thomas_Rother 你是否有兴趣在 下一次 OFFDEM 上讨论更多关于自由软件的资助机会?

4 个赞

@mcwumbly @sam @lindsey

我完全支持@hellekin的陈述。在欧洲的许多开源社区和政府组织中,都有大力推动使用Matrix作为聊天解决方案的趋势。Discourse及其组织框架CDCK应该认识到,这可能在不久的将来成为影响Discourse(或对其不利)的一个重要转折点。目前这可能只是“技术人员”的现象。但迟早,不那么懂技术的人(包括经理)也会明白,Matrix才是正确的方式——开源、基于开放灵活的开放协议,并且是联邦制的。

我之前曾提到,我们已经有许多欧洲和德国的大型机构在使用(或即将使用)基于Matrix的解决方案(例如,德国军队的bwmessenger,或德国GEMATIK运营的国家医疗网络未来的TI-messenger)。

因此,CDCK应该真正将此作为一个官方项目,开发Discourse当前聊天与本地Discourse实例之外的某些基于Matrix的服务(包括“跨Discourse”聊天)之间的技术连接。这类似于@angus已经为ActivityPub协议开始的开发(https://meta.discourse.org/t/activitypub-plugin/266794)。

参考资料:

6 个赞

众筹能帮助资助这样的事业吗?

依我看,应该有一个逐步淘汰电子邮件必要性的路线图。
使用Matrix可能是其中一个方法。

我认为资金并不是真正的主要问题。我认为,我们首先需要:

  • CDCK 员工的明确承诺,即矩阵实现是 Discourse 产品有用且计划中的功能/用例
  • 一两个人可以从事开发工作(例如,1 名负责 Discourse/Ruby 编程,1 名负责用户体验工作)。此外还需要更多支持者进行测试、调试和文档编写。我不是 Ruby 开发人员,但我可以帮助设置测试环境以及进行调试/编写文档
  • 检查 @danGitHub - udan11/discourse-chat-matrix: A Matrix bridge for Discourse Chat 上已创建的代码,看看需要进行哪些工作才能将其从“alpha”状态提升到“beta”状态。
  • 我们已经在这个话题中有了来自 Matrix Foundation 的 @joshsimmons。他可能在连接和 Matrix 方面的技术细节上有所帮助。

从我的角度来看,资金(无论是众筹还是外部资金)是最后一个规划步骤。只有在 CDCK 方面明确并同意了其他几点之后,才能提出资金申请。我已经提到了 SRS 作为可能的支持来源,可能还有其他来源。CDCK 的企业客户中也可能有支持开发矩阵功能的利益相关者。

6 个赞

经过对这个整体话题的一些研究,将聊天系统迁移到 Matrix 似乎非常有意义。我希望这个功能能尽快提供。我也很乐意进行 Beta 测试。

1 个赞

嗯……不确定我是否同意。

CDCK 不一定需要积极参与,也不需要是决策者——如果需要,第三方可以填补空白——有许多插件最初是在 CDCK 之外开发的。

资金是绝对关键的,可以为开发人员的参与提供激励和带宽。

我承认,无论构建什么,长期支持都必须在计划中予以考虑。

6 个赞

对于资金,您通常需要一个可以申请的“法律实体”。这通常是一个开源项目背后的公司或其他类型的组织,而不是一个私人开发者。

德国的资金申请窗口现已关闭。我今年早些时候谈到的德国主权技术基金(https://www.sovereign.tech)已经超额认购,不再接受新的申请。

此外,由于德国目前的执政联盟破裂,其财政基础已不再稳定。二月我们将举行大选,届时将组成一个更保守的联盟。这可能——大概——不像目前的联盟那样对开源友好。

2 个赞

确实如此。Matrix 组织或相关实体应该有人申请此类资助。有很多人愿意提供帮助,但资金需要通过一个信誉良好的候选人来发放。谁对 Matrix 协议和 Discourse 足够了解,能够评估所需的工作?

1 个赞

revived this old topic. In this new world of LLMs, this sort of thing is easier to prototype.

I had some spare LLM capacity over the past few weeks and a bit of curiosity, so I gave this a shot.

It is strictly a proof-of-concept, not-production-ready code at this time. At the moment, we don’t have any existing consumers.

But it’s doable and possible and if there is interest in it from existing or future Discourse users, it’s certainly something that I would be happy to continue working on. You can also do a live test if you want on https://do2.musaraj.com (keep in mind this is a test instance that may be down for updates regularly.)

6 个赞

@pmusaraj,通过 @rokejulianlockhart:matrix.org 告知,我无法加入 develop.element.io/#/room/!HizmVSBEQVwREThZXz:matrix.musaraj.com,因为我观察到:

获取失败:尝试获取资源时出现 NetworkError。(matrix-client.matrix.org)

1 个赞

@pmusaraj 太棒了!我绝对仍然非常关注这个桥接功能,因为将网络分离一直是我的社区的一个痛点。

只是想提醒你注意上面提到的,在 此处 已经有一个实现,其中包含大量代码?看起来它只需要:1) 更新以适配现代版本的 Discourse,2) 添加文档,3) 完成该帖子中列出的待办事项(媒体上传/打字通知),4) 如果自 2023 年以来 Matrix 贴纸/反应功能有所变化,则添加 Matrix 贴纸/反应。我还没有进行代码审查或尝试运行,只是想知道这是否可以作为你启动项目的一个良好起点。

1 个赞

感谢你的快速测试!https://matrix.musaraj.com/ 对你来说会返回状态页面吗?

我忘了去检查那个了。在 Discourse 和 Matrix/Element 这两者之间,过去三年里发生了很多变化,不过那个仓库对于机器人来说可能是一个有用的参考。

2 个赞

现在应该可以了 @rokejulianlockhartmatrix.musaraj.com 是 Matrix 的一个测试实例,我之前没有启用联邦功能,也没有将房间设为公开。现在应该可以访问了,我能够通过 #discourse-general:matrix.musaraj.com 将其添加到另一个实例中。

1 个赞

@pmusaraj,我没看到有这个选项。你能演示一下怎么做吗?


@pmusaraj,它把我 .replace 到了 https://matrix.musaraj.com/_matrix/static/,我在其中观察到:

<!DOCTYPE html>
<html lang="en">
  <head>
   <title>Synapse is running</title>
   <style>
       body {
         font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
         max-width: 40em;
         margin: auto;
         text-align: center;
       }
       h1, p {
         margin: 1.5em;
       }
       hr {
        border: none;
        background-color: #ccc;
        color: #ccc;
        height: 1px;
        width: 7em;
        margin-top: 4em;
      }
       .logo {
         display: block;
         width: 12em;
         margin: 4em auto;
       }
   </style>
  </head>
  <body>
    <div class="logo">
       <svg role="img" aria-label="[Matrix logo]" viewBox="0 0 200 85" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
          <g id="parent" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
              <g id="child" transform="translate(-122.000000, -6.000000)" fill="#000000" fill-rule="nonzero">
                  <g id="matrix-logo" transform="translate(122.000000, 6.000000)">
                      <polygon id="left-bracket" points="2.24708861 1.93811009 2.24708861 82.7268844 8.10278481 82.7268844 8.10278481 84.6652459 0 84.6652459 0 0 8.10278481 0 8.10278481 1.93811009"></polygon>
                      <path d="M24.8073418,27.5493174 L24.8073418,31.6376991 L24.924557,31.6376991 C26.0227848,30.0814294 27.3455696,28.8730642 28.8951899,28.0163743 C30.4437975,27.1611927 32.2189873,26.7318422 34.218481,26.7318422 C36.1394937,26.7318422 37.8946835,27.102622 39.4825316,27.8416679 C41.0708861,28.5819706 42.276962,29.8856073 43.1005063,31.7548404 C44.0017722,30.431345 45.2270886,29.2629486 46.7767089,28.2506569 C48.3253165,27.2388679 50.158481,26.7318422 52.2764557,26.7318422 C53.8843038,26.7318422 55.3736709,26.9269101 56.7473418,27.3162917 C58.1189873,27.7056734 59.295443,28.3285835 60.2759494,29.185022 C61.255443,30.0422147 62.02,31.1615927 62.5701266,32.5426532 C63.1187342,33.9262275 63.3936709,35.5898349 63.3936709,37.5372459 L63.3936709,57.7443688 L55.0410127,57.7441174 L55.0410127,40.6319376 C55.0410127,39.6201486 55.0020253,38.6661761 54.9232911,37.7700202 C54.8440506,36.8751211 54.6293671,36.0968606 54.2764557,35.4339817 C53.9232911,34.772611 53.403038,34.2464807 52.7177215,33.8568477 C52.0313924,33.4689743 51.0997468,33.2731523 49.9235443,33.2731523 C48.7473418,33.2731523 47.7962025,33.4983853 47.0706329,33.944578 C46.344557,34.393033 45.7764557,34.9774826 45.3650633,35.6969211 C44.9534177,36.4181193 44.6787342,37.2353431 44.5417722,38.150855 C44.4037975,39.0653615 44.3356962,39.9904257 44.3356962,40.9247908 L44.3356962,57.7443688 L35.9835443,57.7443688 L35.9835443,40.8079009 C35.9835443,39.9124991 35.963038,39.0263982 35.9253165,38.150855 C35.8853165,37.2743064 35.7192405,36.4666349 35.424557,35.7263321 C35.1303797,34.9872862 34.64,34.393033 33.9539241,33.944578 C33.2675949,33.4983853 32.2579747,33.2731523 30.9248101,33.2731523 C30.5321519,33.2731523 30.0126582,33.3608826 29.3663291,33.5365945 C28.7192405,33.7118037 28.0913924,34.0433688 27.4840506,34.5292789 C26.875443,35.0164459 26.3564557,35.7172826 25.9250633,36.6315376 C25.4934177,37.5470495 25.2779747,38.7436 25.2779747,40.2229486 L25.2779747,57.7441174 L16.9260759,57.7443688 L16.9260759,27.5493174 L24.8073418,27.5493174 Z" id="m"></path>
                      <path d="M68.7455696,31.9886202 C69.6075949,30.7033339 70.7060759,29.672189 72.0397468,28.8926716 C73.3724051,28.1141596 74.8716456,27.5596239 76.5387342,27.2283101 C78.2050633,26.8977505 79.8817722,26.7315908 81.5678481,26.7315908 C83.0974684,26.7315908 84.6458228,26.8391798 86.2144304,27.0525982 C87.7827848,27.2675248 89.2144304,27.6865688 90.5086076,28.3087248 C91.8025316,28.9313835 92.8610127,29.7983798 93.6848101,30.9074514 C94.5083544,32.0170257 94.92,33.4870734 94.92,35.3173431 L94.92,51.026844 C94.92,52.3913138 94.998481,53.6941963 95.1556962,54.9400165 C95.3113924,56.1865908 95.5863291,57.120956 95.9787342,57.7436147 L87.5091139,57.7436147 C87.3518987,57.276055 87.2240506,56.7996972 87.1265823,56.3125303 C87.0278481,55.8266202 86.9592405,55.3301523 86.9207595,54.8236294 C85.5873418,56.1865908 84.0182278,57.1405633 82.2156962,57.6857982 C80.4113924,58.2295248 78.5683544,58.503022 76.6860759,58.503022 C75.2346835,58.503022 73.8817722,58.3275615 72.6270886,57.9776459 C71.3718987,57.6269761 70.2744304,57.082244 69.3334177,56.3411872 C68.3921519,55.602644 67.656962,54.6680275 67.1275949,53.5390972 C66.5982278,52.410167 66.3331646,51.065556 66.3331646,49.5087835 C66.3331646,47.7961578 66.6367089,46.384178 67.2455696,45.2756092 C67.8529114,44.1652807 68.6367089,43.2799339 69.5987342,42.6173064 C70.5589873,41.9556844 71.6567089,41.4592165 72.8924051,41.1284055 C74.1273418,40.7978459 75.3721519,40.5356606 76.6270886,40.3398385 C77.8820253,40.1457761 79.116962,39.9896716 80.3329114,39.873033 C81.5483544,39.7558917 82.6270886,39.5804312 83.5681013,39.3469028 C84.5093671,39.1133743 85.2536709,38.7732624 85.8032911,38.3250587 C86.3513924,37.8773578 86.6063291,37.2252881 86.5678481,36.3680954 C86.5678481,35.4731963 86.4210127,34.7620532 86.1268354,34.2366771 C85.8329114,33.7113009 85.4405063,33.3018092 84.9506329,33.0099615 C84.4602532,32.7181138 83.8916456,32.5232972 83.2450633,32.4255119 C82.5977215,32.3294862 81.9010127,32.2797138 81.156962,32.2797138 C79.5098734,32.2797138 78.2159494,32.6303835 77.2746835,33.3312202 C76.3339241,34.0320569 75.7837975,35.2007046 75.6275949,36.8354037 L67.275443,36.8354037 C67.3924051,34.8892495 67.8817722,33.2726495 68.7455696,31.9886202 Z M85.2440506,43.6984752 C84.7149367,43.873433 84.1460759,44.0189798 83.5387342,44.1361211 C82.9306329,44.253011 82.2936709,44.350545 81.6270886,44.4279688 C80.96,44.5066495 80.2934177,44.6034294 79.6273418,44.7203193 C78.9994937,44.8362037 78.3820253,44.9933138 77.7749367,45.1871248 C77.1663291,45.3829468 76.636962,45.6451321 76.1865823,45.9759431 C75.7349367,46.3070055 75.3724051,46.7263009 75.0979747,47.2313156 C74.8232911,47.7375872 74.6863291,48.380356 74.6863291,49.1588679 C74.6863291,49.8979138 74.8232911,50.5218294 75.0979747,51.026844 C75.3724051,51.5338697 75.7455696,51.9328037 76.2159494,52.2246514 C76.6863291,52.5164991 77.2349367,52.7213706 77.8632911,52.8375064 C78.4898734,52.9546477 79.136962,53.012967 79.8037975,53.012967 C81.4506329,53.012967 82.724557,52.740978 83.6273418,52.1952404 C84.5288608,51.6507596 85.1949367,50.9981872 85.6270886,50.2382771 C86.0579747,49.4793725 86.323038,48.7119211 86.4212658,47.9321523 C86.518481,47.1536404 86.5681013,46.5304789 86.5681013,46.063422 L86.5681013,42.9677248 C86.2146835,43.2799339 85.7736709,43.5230147 85.2440506,43.6984752 Z" id="a"></path>
                      <path d="M116.917975,27.5493174 L116.917975,33.0976917 L110.801266,33.0976917 L110.801266,48.0492936 C110.801266,49.4502128 111.036203,50.3850807 111.507089,50.8518862 C111.976962,51.3191945 112.918734,51.5527229 114.33038,51.5527229 C114.801013,51.5527229 115.251392,51.5336183 115.683038,51.4944037 C116.114177,51.4561945 116.526076,51.3968697 116.917975,51.3194459 L116.917975,57.7438661 C116.212152,57.860756 115.427595,57.9381798 114.565316,57.9778972 C113.702785,58.0153523 112.859747,58.0357138 112.036203,58.0357138 C110.742278,58.0357138 109.516456,57.9477321 108.36,57.7722716 C107.202785,57.5975651 106.183544,57.2577046 105.301519,56.7509303 C104.418987,56.2454128 103.722785,55.5242147 103.213418,54.5898495 C102.703038,53.6562385 102.448608,52.4292716 102.448608,50.9099541 L102.448608,33.0976917 L97.3903797,33.0976917 L97.3903797,27.5493174 L102.448608,27.5493174 L102.448608,18.4967596 L110.801013,18.4967596 L110.801013,27.5493174 L116.917975,27.5493174 Z" id="t"></path>
                      <path d="M128.857975,27.5493174 L128.857975,33.1565138 L128.975696,33.1565138 C129.367089,32.2213945 129.896203,31.3559064 130.563544,30.557033 C131.23038,29.7596679 131.99443,29.0776844 132.857215,28.5130936 C133.719241,27.9495083 134.641266,27.5113596 135.622532,27.1988991 C136.601772,26.8879468 137.622025,26.7315908 138.681013,26.7315908 C139.229873,26.7315908 139.836962,26.8296275 140.504304,27.0239413 L140.504304,34.7336477 C140.111646,34.6552183 139.641013,34.586844 139.092658,34.5290275 C138.543291,34.4704569 138.014177,34.4410459 137.504304,34.4410459 C135.974937,34.4410459 134.681013,34.6949358 133.622785,35.2004532 C132.564051,35.7067248 131.711392,36.397255 131.064051,37.2735523 C130.417215,38.1501009 129.955443,39.1714422 129.681266,40.3398385 C129.407089,41.5074807 129.269873,42.7736624 129.269873,44.1361211 L129.269873,57.7438661 L120.917722,57.7438661 L120.917722,27.5493174 L128.857975,27.5493174 Z" id="r"></path>
                      <path d="M144.033165,22.8767376 L144.033165,16.0435798 L152.386076,16.0435798 L152.386076,22.8767376 L144.033165,22.8767376 Z M152.386076,27.5493174 L152.386076,57.7438661 L144.033165,57.7438661 L144.033165,27.5493174 L152.386076,27.5493174 Z" id="i"></path>
                      <polygon id="x" points="156.738228 27.5493174 166.266582 27.5493174 171.619494 35.4337303 176.913418 27.5493174 186.147848 27.5493174 176.148861 41.6831927 187.383544 57.7441174 177.85443 57.7441174 171.501772 48.2245028 165.148861 57.7441174 155.797468 57.7441174 166.737468 41.8589046"></polygon>
                      <polygon id="right-bracket" points="197.580759 82.7268844 197.580759 1.93811009 191.725063 1.93811009 191.725063 0 199.828354 0 199.828354 84.6652459 191.725063 84.6652459 191.725063 82.7268844"></polygon>
                  </g>
              </g>
          </g>
      </svg>
    </div>
    <h1>It works! Synapse is running</h1>
    <p>Your Synapse server is listening on this port and is ready for messages.</p>
    <p>To use this server you'll need <a href="https://matrix.org/ecosystem/clients/" target="_blank" rel="noopener noreferrer">a Matrix client</a>.
    </p>
    <p>Welcome to the Matrix universe :)</p>
    <hr>
    <p>
      <small>
        <a href="https://matrix.org" target="_blank" rel="noopener noreferrer">
          matrix.org
        </a>
      </small>
    </p>
  </body>
</html>

我看到您的消息 @rokejulianlockhart

在 Discourse 端,您应该在侧边栏中看到「常规」板块,并在那里回复。

@pmusaraj, 我没有:

我也看不到聊天功能。也许你还没有更改 chat_allowed_groups 站点设置的默认值。这会导致只有 TL1 及以上级别的用户才能访问。(在移除引导模式之前,该默认设置在测试站点上是有效的,因为现在新用户不再以 TL1 级别开始)

3 个赞

已将其设置为对 tl0 可见,你现在能看到它了吗?谢谢!

4 个赞

@pmusaraj,是的,谢谢。

1 个赞