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

3.6 KiB

title type weight version
房间版本 8 docs 80 8

{{< boxes/warning >}} 本页面的翻译未经核对,可能存在翻译质量不佳、错翻、漏翻等情况。您可以在 Forgejo 存储库 打开 Issue、提交 Pull Request 或邮件联系我们提出改进建议和参与翻译与核对。 {{< /boxes/warning >}}

本房间版本在版本 7的基础上,新增了一种加入规则,允许成员基于在另一个房间的成员身份加入该房间。

{{% boxes/warning %}} 已知此房间版本存在有关成员加入事件撤回的问题。房间版本 9在创建房间时应优先选择,而不是 v8。 {{% /boxes/warning %}}

客户端注意事项

建议客户端在其用户界面中为支持的房间版本提供该加入规则的选项。

新的加入规则 restricted 的详细信息请参考 客户端-服务器 API

在本地实现撤回事务算法的客户端应参考下方撤回章节了解完整内容。

撤回

{{% added-in v=8 %}} m.room.join_rules 事件现在在被撤回时,除了其他 content 键外,仍会保留 allow

{{% boxes/warning %}} 房间版本 9增加了“受保护属性”更多的情形,以应对 v8 引入的受限房间功能。当创建新房间时,应优先选择 v9。 {{% /boxes/warning %}}

完整的撤回事务算法如下:

收到撤回事务事件时,服务器必须移除以下列表外的任何键:

  • event_id
  • type
  • room_id
  • sender
  • state_key
  • content
  • hashes
  • signatures
  • depth
  • prev_events
  • prev_state
  • auth_events
  • origin
  • origin_server_ts
  • membership

content 对象的所有键也必须被移除,除非该事件类型属于以下之一:

  • m.room.member 允许键 membership
  • m.room.create 允许键 creator
  • m.room.join_rules 允许键 join_ruleallow
  • m.room.power_levels 允许键 baneventsevents_defaultkickredactstate_defaultusersusers_default
  • m.room.history_visibility 允许键 history_visibility

服务器实现组件

{{% boxes/warning %}} 本节信息仅面向服务器实现者。采用客户端-服务器 API 的应用通常不受此处详细内容的影响。客户端-服务器 API 用例应以上方客户端注意事项为准。 {{% /boxes/warning %}}

房间版本 8 新增了一种加入规则,允许某个房间的成员无需邀请即可加入另一个房间。除此以外,房间版本继承了房间版本 7的所有属性。

鉴权规则

{{% added-in v=8 %}} 在 m.room.member 事件执行检查时,新增了处理 content.join_authorised_via_users_server 的要点(规则 4.2 和 4.3.5)。

{{% rver-fragment name="v8-auth-rules" %}}

撤回

见上文

与 v7 保持一致

下列章节自 v7 起未做修改,这里为保证文档完整性一并列出。

撤回事件处理

{{% rver-fragment name="v3-handling-redactions" %}}

事件 ID

{{% rver-fragment name="v4-event-ids" %}}

事件格式

{{% rver-fragment name="v6-event-format" %}}

已弃用的事件内容模式

{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}

{{% rver-fragment name="v1-stringy-power-levels" %}}

状态解析

{{% rver-fragment name="v2-state-res" %}}

标准 JSON

{{% rver-fragment name="v6-canonical-json" %}}

签名密钥有效期

{{% rver-fragment name="v5-signing-requirements" %}}