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

73 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 房间版本 4
type: docs
weight: 40
version: 4
---
{{< boxes/warning >}}
本页面的翻译未经核对,可能存在翻译质量不佳、错翻、漏翻等情况。您可以在 <a href="https://codeberg.org/wholetrans/docs-matrix-spec">Forgejo 存储库</a> 打开 Issue、提交 Pull Request 或<a href="mailto:errata@wholetrans.org">邮件联系</a>我们提出改进建议和参与翻译与核对。
{{< /boxes/warning >}}
本房间版本在 [版本 3](/rooms/v3) 的基础上,采用了不同的事件 ID 编码方式。
## 客户端注意事项
本房间版本更改了发送给客户端的事件 ID 格式。客户端应始终将事件 ID 视为不可理解的标识符,而不应关心其具体格式。在将事件 ID 包含在请求路径中时,客户端仍需对其进行编码。
客户端应做好事件 ID 的格式已从 `$randomstring:example.org` 更改为类似 `$Rqnc-F-dvnEYJTyHq_iKxU2bZ1CI92-kuZq3a5lr5Zg`(请注意没有域名部分)的准备。
虽然本房间版本对此未作更改,但如客户端在本地实现了修订算法,应参考下文的 [修订](#redactions) 部分,了解完整内容。
## 服务器实现要点
{{% boxes/warning %}}
本节内容仅供服务器实现者参考。使用 Client-Server API 的应用通常不会受到此处细节的影响。上述关于客户端注意事项的部分,才是 Client-Server API 用例应参考的内容。
{{% /boxes/warning %}}
房间版本 4 使用了 [房间版本 3](/rooms/v3) 中定义的相同算法,不过在生成事件 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](/rooms/v3#event-format) 相同,但以下示例中的事件 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" %}}