文档

流程控制

更新时间:

流程控制内的逻辑节点包括单路判断、条件判断、多路判断、计时器(原定时器)、序列执行、websocketwebsocket-pro。本文介绍在蓝图编辑器中,配置流程控制类节点的方法。

单路判断

条件判断节点属于If判断条件节点。当满足设定条件时,抛出满足事件。

说明

抛出事件意味着,如果事件节点连接其他逻辑,系统将执行该逻辑。本文“抛出”均为同一个意思。

使用场景

例如,根据开关状态触发图层的显示效果场景。可以通过单路判断节点来判断当前开关的状态。处于打开状态,则显示图层。

使用方法

添加单路判断节点至蓝图画布中,可查看单路判断节点支持的事件/动作,以及配置参数。添加方式请参见使用逻辑节点

节点配置

image

判断条件配置,可采用可视化界面和代码编辑两种方式。

  • 可视化编辑:选择并且模式以满足全部条件,选择或者模式以满足任一条件。

  • 代码编辑:通过新增数据过滤器的方法编写过滤条件,返回结果为BOOLEAN型。返回结果为TRUE时抛出条件满足时事件。可以添加多个数据过滤器。

锚点配置image

事件/动作参数说明

事件/动作

说明

条件满足时

上游节点输出的结果,满足设定条件。可自定义事件名称。

判断

输入上游节点的输出结果,用于条件判断。可自定义动作名称。

条件判断

条件判断节点属于If-Else判断条件节点。当满足设定条件时,抛出满足事件,不满足设定条件,抛出不满足事件。

使用场景

例如,根据开关状态触发两个图层的显隐效果场景。可以通过条件判断节点来判断当前开关的状态。处于打开状态,则仅显示图层A;处于关闭状态,则仅显示图层B。

使用方法

添加条件判断节点至蓝图画布中,可查看条件判断节点支持的事件/动作,以及配置参数。添加方式请参见使用逻辑节点

节点配置

image

配置项说明

参数

说明

判断类型

  • 同时满足所有条件:当上游节点的输出结果满足所有设定的条件时,抛出满足事件;只要有一个条件不满足,则抛出不满足事件。

  • 满足任一条件:当上游节点输出结果满足任一设定的条件时,抛出满足事件;全部不满足抛出不满足事件。

条件列表

通过新增数据过滤器的方法编写过滤条件,返回结果为BOOLEAN型。返回结果为TRUE时抛出满足时事件,返回结果为FALSE时抛出不满足时事件。可以添加多个数据过滤器。

锚点配置image

事件/动作参数说明

事件/动作

说明

满足

上游节点输出的结果,满足设定条件。可自定义事件名称。

不满足

上游节点输出的结果,不满足设定条件。可自定义事件名称。

判断

输入上游节点的输出结果,用于条件判断。可自定义动作名称。

多路判断

多路判断节点属于Case-When节点。通过对上游节点的输出结果进行判断,触发第一个满足条件的下游节点执行对应动作。

使用场景

例如,根据数字输入框内,当前的输入值设置地图散点的颜色。可通过多路判断节点,判断当前的输入值处于哪个范围,进而触发散点颜色的设置。例如在配置项中设置,当数值大于100时,为红色;50~100之间,为黄色;小于50,为蓝色。

使用方法

添加多路判断节点至蓝图画布中,可查看多路判断节点支持的事件/动作,以及配置参数。添加方式请参见使用逻辑节点

image

事件/动作参数说明

事件/动作

说明

当满足此条件时

满足此条件,则抛出该事件。可在配置面板中添加多个处理方法,添加后,多路判断节点中显示您添加的处理方法;不同处理方法可连接不同的下游节点,实现多路判断。

当不满足以上条件时

当不满足在此之前设置的处理方法时,则抛出该事件。

判断

输入上游节点的输出结果,用于多路判断。

配置项说明

参数

说明

处理方法

通过新增数据过滤器的方法编写处理方法,返回结果为BOOLEAN型。返回结果为TRUE时抛出当满足此条件时事件,满足后即抛出对应事件,且不再执行后续处理方法。当不满足所有的条件设定时,则抛出当不满足以上条件时事件。

计时器

计时器节点支持延迟定时、定点定时、循环延时定时和循环周期定时。

使用场景

计时器适用于需要定时的场景需求。当时间计数到达配置项设定的时间点时,计时器节点抛出当到计时点时事件,输出上游节点的输出结果,触发后续动作。

使用方法

添加计时器节点至蓝图画布中,可查看计时器节点支持的事件/动作,以及配置参数。添加方式请参见使用逻辑节点

节点配置

image

配置项说明

参数

说明

定时方式

支持延时定时定点定时两种方式。

是否循环

是否需要重复计时。当定时方式定点定时是否循环开启后,会配置定点周期,自定义设置定点周期内的起始时间、间隔时间和单位。

延迟/间隔时间

以秒为单位进行倒计时。仅当定时方式延时定时时有效。

定点时间

以秒为单位进行倒计时,到达具体的标准时间点,抛出事件。仅当定时方式定点定时,且循环计时关闭时有效。

锚点配置image

事件/动作参数说明

事件/动作

说明

当到计时点时

到达计时点时抛出事件,触发下游节点执行动作。循环计时情况下,将循环抛出该事件。

开始计时

启动计时器。

停止计时

停止计时器,下次触发开始计时时,将重新计时。一般用在循环计时中。

序列执行

序列执行节点属于顺序执行节点。通过对上游节点的输出结果进行当前方法过滤后,再传递给下游节点执行对应动作。

使用场景

例如,当您需要切换不同场景的数据面板时,每个场景有很多数据面板,先把场景A相关的数据面板切出,再把场景B相关的数据面板切进。可使用序列执行节点,对不同场景的数据面板进行分组,再按照先A后B的顺序执行。

使用方法

添加序列执行节点至蓝图画布中,可查看序列执行节点支持的事件或动作,以及配置参数。添加方式请参见使用逻辑节点

image

事件或动作参数说明

事件或动作

说明

当执行此方法后

序列执行节点的数据处理方法。可在配置面板中添加多个处理方法,添加后,序列执行节点中显示您添加的处理方法;各方法按照顺序进行数据处理。

执行

输入上游节点的输出结果,用于该节点的结果计算。

配置项说明

参数

说明

处理方法

通过新增数据过滤器的方法编写处理方法,返回结果为BOOLEAN型。返回结果为TRUE抛出当执行此方法后事件,可叠加多个。每个处理方法独立计算,输入均为上一个节点的输出结果,输出为每个处理方法自己的计算结果,相互不影响。

websocket节点

websocket节点为屏间通信节点。每个消息由消息名称和数据组成,消息名称在配置项中自定义,数据为上一个节点的输出结果。

使用场景

websocket节点用于多端之间的命令和数据传输。例如大屏与移动端、大屏与触摸屏端的数据传输等。

使用方法

添加websocket节点至蓝图画布中,可查看websocket节点支持的事件/动作,以及配置参数。添加方式请参见使用逻辑节点

节点配置

image

配置项说明

参数

说明

服务地址

socket后端服务的地址。

屏幕ID

websocket节点所在屏幕的ID号,自定义输入。

屏幕名称

websocket节点所在屏幕的名称,自定义输入。

分组

websocket节点消息只在同socket服务下的同分组中进行广播。一般同一项目约定一个分组名称。

锚点配置

image

事件/动作参数说明

事件/动作

说明

当接收此消息时

websocket节点接收到来自其他端的同名消息时,触发此事件。可在配置面板中编辑接收消息名。单击右侧的新增事件按钮,添加一个接收消息。单击右侧的image图标,删除接收消息。

发送此消息

输入上游节点的输出结果,发送到其他端。可在配置面板中编辑发送消息名。单击右侧的新增动作按钮,添加一个发送消息。单击右侧的image图标,删除发送消息。

自建socket服务

我们提供了DataV-WS工具包来自建服务,具体操作请参见如何使用DataV-WS服务。自建的websocket服务需要符合以下格式。

配置示例

image

注册消息

websocket节点发送消息格式如下。

{
  event: "register",
  data: {
    sid: "407194",                                      //屏幕的ID
    name: "数据源受控模式测试",                        //屏幕的名称
    group: "默认分组"                                 //默认分组
  },
  callback: "callback_15832235175585251131307383912" //当前注册时间戳,自动生成
}

websocket节点服务获取注册消息之后,需返回如下消息才能成功注册。

{
  event: "callback_15832235175585251131307383912",   //返回与之前同样的注册时间戳
  data: {
    isError: false,                                  //置为false
    data: "ok"
  }
}

发送消息

websocket节点发送消息格式如下。

{
  event: 'broadcast',
  data: {
    event: "发送出去的消息1",                         //发送消息名称
    data: {}                                         //data为任意格式
  }
}

接收消息

websocket节点接收消息格式如下。

{
  event: "broadcast_接收到的消息1",                  //broadcast_${接收消息名称}
  data: {}                                          //data为任意格式
}

问题排查

无法正常连接websocket的服务端时,可根据以下步骤排查问题:

  1. WS服务不能直接在HTTPS协议下访问,需要用WSS服务,在使用自己的SSL证书去代理WS服务地址后,才能在HTTPS下访问。

  2. 使用功能键F12,打开浏览器调试页面,查看浏览器network页签下的WS标签连接提示信息,检查是否因跨域未配置以及在连接返回的responseheader里是否有设置Sec-WebSocket-Protocol为echo-protocol。

  3. 连接成功后,根据文档中的消息格式传递参数即可。

websocket-pro节点

websocket-pro节点为屏间通信节点,相较于websocket节点,它提供了更精细的配置选项,可以更好地控制屏间通信的细节。与websocket节点一致,每个消息由自定义的消息名称和上一个节点输出的数据组成。

使用场景

websocket节点相同,websocket-pro节点用于多端之间的命令和数据传输。

使用方法

添加websocket-pro节点至蓝图画布中,可查看websocket-pro节点的配置参数。添加方式请参见使用逻辑节点

节点配置

image配置项说明

参数

说明

服务地址

socket后端服务的地址。我们提供了DataV-WS工具包供您选择,具体操作请参见如何使用DataV-WS服务

分组

websocket-pro节点消息只在同socket服务下的同分组中进行广播。一般同一项目约定一个分组名称。

屏幕ID

websocket-pro节点所在屏幕的ID号,自定义输入。

屏幕名称

Websocket-pro节点所在屏幕的名称,自定义输入。

包含的屏幕

发送消息时,在同分组下默认都能接收到消息,可以通过在该配置添加屏幕ID,指定需要接收到消息的屏幕。

排除的屏幕

发送消息时,在同分组下默认都能接收到消息,可以通过添加屏幕ID增加不要接收到消息的屏幕,优先级高于包含的屏幕。

接收消息

websocket-pro节点发送到其他端的消息名称。单击右侧的新增事件按钮,添加一个接收消息。单击右侧的image图标,删除接收消息。

接收消息标识:等同于ws消息内容中的event字段,命中该字段就能接收对应的消息。

接收消息别名:蓝图节点上锚点展示的名称。

处理方法:串行的数据处理方法。可在配置面板中添加多个处理方法,添加后,串行数据处理节点中显示您添加的处理方法;各方法共同实现数据处理,其中方法的输入为消息返回内容,输出为下游节点的输入。

接收消息别名:蓝图节点上锚点展示的名称。

处理方法:串行的数据处理方法。可在配置面板中添加多个处理方法,添加后,串行数据处理节点中显示您添加的处理方法;各方法共同实现数据处理,其中方法的输入为消息返回内容,输出为下游节点的输入。

发送消息

websocket-pro节点发送到其他端的消息名称。单击右侧的新增动作按钮,添加一个发送消息。单击右侧的image图标,删除发送消息。

发送消息标识:以该配置项的值作为消息体的event值发送消息。

发送消息别名:蓝图节点上锚点展示的名称。

处理方法:串行的数据处理方法。可在配置面板中添加多个处理方法,添加后,串行数据处理节点中显示您添加的处理方法;各方法共同实现数据处理,其中方法的输入为消息返回内容,输出为下游节点的输入。

扩展配置

websocket-pro节点所在屏幕进行其他配置。

注册消息广播:对当前屏幕注册广播消息,方便通信。

未响应断开时长:设置当网络服务未响应时自动断开连接的时间。

心跳检测:设置网络通信的心跳检测,检测通信始终处于连接状态。

心跳检测间隔:设置通信连接状态检测的时间间隔。

锚点配置

image事件/动作参数说明

事件/动作

说明

当接收此消息时

当接收此消息时,弹出的事件。通过设置接收消息标识接收后处理方法,接收来自其他屏幕的消息。

自定义连接

设置网络通信的自定义连接。

发送此消息

发送此消息时,通过设置发送消息标识发送前处理方法,发送给不同的屏幕。

自建socket服务

我们提供了DataV-WS工具包来自建服务,具体操作请参见如何使用DataV-WS服务。自建的websocket服务需要符合以下格式。

配置示例

image

注册消息

websocket-pro节点发送消息格式如下。

{
	"source":"407194",
	"target":["10000","20000"]
	"data":{
		"name":"数据源受控模式测试",
		"group":"默认分组",
		"hasCbMsg":true,
		"disconnectTime":60000
	},
	"event":"register"
}

websocket-pro节点服务获取注册消息之后,需内部处理注册消息。如注册成功,再由客户端的hasCbMsg参数决定是否需要发送到接收端。如10s内客户端没有注册成功,断开该客户端连接。发出的消息格式如下:

{
  "event":"register",
  "source":"407194",
  "data":{
    "isError":false,
    "data":"ok"
  }
}

心跳检测

websocket-pro节点开启心跳检测时,需要的应答格式如下。

{
  "event": "heartbeat",
  "data": {
    "group": "默认分组",
    "hasCbMsg":true,
    "disconnectTime": 60000
  }
}

发送消息/接收消息

websocket-pro节点发送/接收消息结构一致,格式如下。

{
  "event":"send_test",
  "source":"407194",
  "target":["10000","20000"],
  "data":{
    "zoom":12
  }
}
说明

websocket-pro附带的心跳、断开重连、包含的屏幕/排除的屏幕配置如果要生效,需要服务端根据客户端发送的消息体结构自定义满足。