写入事务

在上一部分中,我们讨论了属性和事件的读取交互。在这一部分中,我们将讨论特性的写入,即更改集群上的属性值(例如 Level)。

非定时写入事务

非定时写入事务的操作顺序
图 1:非定时写入事务

写入请求操作

方向:启动器 -> 目标

与读取请求操作类似,在此 Action 中,发起者为目标提供以下内容:

  • 写入请求:包含一个或多个元组(包含路径和数据)的列表。
  • 定时请求:指示此操作是否属于定时写入事务的标志。
  • 抑制响应:一个标记,用于表明是否应抑制响应状态操作。

写入回复操作

方向:目标 -> 发起方

目标收到写入请求操作后,它将使用包含以下内容的写入响应操作完成事务:

  • 写入响应:针对写入请求操作发送的每个写入请求的路径和错误代码列表。

非定时写入限制

写入请求操作可能是组播,但在这种情况下必须设置“禁止响应”标志。其原因如下:否则网络可能会被群组中每个成员的同步响应所淹没。

如需启用此行为,“写入请求”列表中使用的路径可以包含组,或者可以包含通配符,但仅限于“端点”字段。

定时写入事务

定时写入事务的操作顺序
图 2:定时写入事务

定时写入事务为未定时写入事务增加了几个步骤。

定时请求操作

方向:启动器 -> 目标

发起者会启动发送此 Action 的交易,其中包含:

  • 超时:此事务可以保持打开状态的毫秒数。在此期间,发起者发送的下一项操作将被视为有效。

收到定时请求操作后,目标必须使用状态响应操作确认定时请求操作。一旦发起者收到未报告任何错误的状态响应操作,就会发送写入请求操作。

写入请求操作

与上文所述的写入请求操作相同。

写入回复操作

与上述写入响应操作相同。

定时写入限制

定时请求操作、写入请求操作和写入响应操作是单播操作。