docs-matrix-spec/locales/zh-Hans/client-server-api/modules/ignore_users.md
2025-04-20 16:13:37 +08:00

1.8 KiB

忽略用户

在通过 Matrix 进行通信时,您可能希望出于某些原因忽略特定用户。本模块定义了客户端和服务器如何实现对用户的忽略。

事件

{{% event event="m.ignored_user_list" %}}

客户端行为

若要忽略(实质上是屏蔽)某个用户,客户端应将目标用户添加至其账户数据中的 m.ignored_user_list 事件,使用 /user/<user_id>/account_data/<type> 完成操作。用户被忽略后,客户端将不再收到该用户发送的事件,状态事件除外。客户端应选择隐藏被新忽略用户之前发送的内容,或执行一次不带历史 token 的新 /sync

被忽略用户对新房间的邀请将不会发送给客户端。服务器也可以选择代表客户端拒绝该邀请。

即使用户被忽略,状态事件仍然会发送给客户端。这是为了确保某些部分(如房间名)不会因为用户被忽略而在客户端表现出不同。

要将某个用户从忽略列表中移除,只需从账户数据事件中移除该用户。服务器将恢复发送此前被忽略用户的事件,但不应发送用户被忽略期间错过的事件。若需接收到被忽略期间发送的事件,客户端应执行一次全新同步。客户端还可取消对之前因忽略该用户而隐藏的事件的隐藏。

服务器行为

m.ignored_user_list 更新后,所有客户端的同步 API 应立即开始忽略(或取消忽略)相关用户。客户端负责确定是隐藏已发送的事件,还是开启新的同步流。

服务器仍需向客户端发送被忽略用户发送的状态事件。

服务器不得将被忽略用户发起的房间邀请发送给客户端。服务器也可以选择拒绝该邀请。