### 私信 Matrix 中的所有通信都发生在房间内。有时,用户希望能够直接与某一个特定的人交流。本模块定义了一种方法,可以将某些房间标记为与指定对象的“私聊”。这并不意味着聊天只能局限于两个人之间,因为这会排除自动“机器人”用户,或者“个人助手”等替用户在其不在时回复私信的功能。 一个房间未必会被房间内所有成员视为“私聊”,但存在一种信号机制,用于向被邀请人传递聊天是否为“私聊”的信息。 #### 事件 {{% event event="m.direct" %}} #### 客户端行为 要与其他用户发起私聊,邀请方的客户端应在 [`/createRoom`](/client-server-api/#post_matrixclientv3createroom) 时设置 `is_direct` 标志。当用户操作的流程意图是与某人直接交流,而不是邀请该人加入一个公共房间时,客户端都应设置该标志。例如,用户在某个人的头像旁点击“开始聊天”时,意味着应设置 `is_direct` 标志。 被邀请方的客户端可以利用 [m.room.member](#mroommember) 事件中的 `is_direct` 标志自动将该房间标记为私聊,但这不是强制要求:客户端也可以弹窗提示用户,或完全忽略该标志。 邀请人和被邀请人的客户端都应通过在账户数据中存储一个 `m.direct` 事件,将该房间记为私聊,接口为 [`/user//account_data/`](/client-server-api/#put_matrixclientv3useruseridaccount_datatype)。 #### 服务端行为 当 [`/createRoom`](/client-server-api/#post_matrixclientv3createroom) 接口中提供了 `is_direct` 标志时,所属服务器必须在 [`/createRoom`](/client-server-api/#post_matrixclientv3createroom) 调用所邀请成员的邀请事件中设置 `is_direct` 标志。