1.8 KiB
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 应立即开始忽略(或取消忽略)相关用户。客户端负责确定是隐藏已发送的事件,还是开启新的同步流。
服务器仍需向客户端发送被忽略用户发送的状态事件。
服务器不得将被忽略用户发起的房间邀请发送给客户端。服务器也可以选择拒绝该邀请。