docs-matrix-spec/locales/zh-Hans/rooms/v4.md
2025-04-20 16:13:37 +08:00

2.7 KiB
Raw Blame History

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" %}}