2.7 KiB
title | type | weight | version |
---|---|---|---|
房间版本 4 | docs | 40 | 4 |
{{< boxes/warning >}} 本页面的翻译未经核对,可能存在翻译质量不佳、错翻、漏翻等情况。您可以在 Forgejo 存储库 打开 Issue、提交 Pull Request 或邮件联系我们提出改进建议和参与翻译与核对。 {{< /boxes/warning >}}
本房间版本在 版本 3 的基础上,采用了不同的事件 ID 编码方式。
客户端注意事项
本房间版本更改了发送给客户端的事件 ID 格式。客户端应始终将事件 ID 视为不可理解的标识符,而不应关心其具体格式。在将事件 ID 包含在请求路径中时,客户端仍需对其进行编码。
客户端应做好事件 ID 的格式已从 $randomstring:example.org
更改为类似 $Rqnc-F-dvnEYJTyHq_iKxU2bZ1CI92-kuZq3a5lr5Zg
(请注意没有域名部分)的准备。
虽然本房间版本对此未作更改,但如客户端在本地实现了修订算法,应参考下文的 修订 部分,了解完整内容。
服务器实现要点
{{% boxes/warning %}} 本节内容仅供服务器实现者参考。使用 Client-Server API 的应用通常不会受到此处细节的影响。上述关于客户端注意事项的部分,才是 Client-Server API 用例应参考的内容。 {{% /boxes/warning %}}
房间版本 4 使用了 房间版本 3 中定义的相同算法,不过在生成事件 ID 时采用了 URL 安全的 base64 编码方式。
事件 ID
{{% boxes/rationale %}}
房间版本 3 生成的事件 ID,对于未对事件 ID 编码的客户端实现来说难以正常使用。此外,由于 /
字符在某些反向代理软件中会被区别对待,也引发了相关担忧,并在一般管理上带来了不便。
{{% /boxes/rationale %}}
{{% rver-fragment name="v4-event-ids" %}}
与 v3 保持一致的部分
以下内容自 v3 起未作修改,为保证完整性予以收录。
修订
{{% rver-fragment name="v1-redactions" %}}
处理修订
{{% rver-fragment name="v3-handling-redactions" %}}
事件格式
事件格式与 房间版本 3 相同,但以下示例中的事件 ID 已根据本房间版本的更改进行了更新。
{{% rver-fragment name="v4-event-format" %}}
已废弃的事件内容模式
{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}
{{% rver-fragment name="v1-stringy-power-levels" %}}
授权规则
{{% rver-fragment name="v3-auth-rules" %}}
状态解析
{{% rver-fragment name="v2-state-res" %}}
规范化 JSON
{{% rver-fragment name="v1-canonical-json" %}}