检查关系过滤器节点
根据消息类型和指令检查所选实体和消息发起者之间的关系。
如果存在关系 - 通过True链发送消息,如果无任何关系,则通过False链发送消息
消息类型过滤器节点
在节点配置中,管理员为传入消息定义了一组允许使用的消息类型。系统中有预定义的消息类型,如Post属性、Post telemetry、RPC请求等。管理员还可以在节点配置自定义消息类型。
如果传入消息类型符合预期,则使用True链发送消息,反之,使用False链发送消息。
消息类型转换节点
通过消息类型路由传入消息。如果传入消息类型已知,那么该消息将被发送到相应的规则链,否则,消息将被发送到其他链。 如果使用自定义消息类型,则可以通过消息类型转换节点的其他链将这些消息路由到配置了相应路由逻辑的转换节点或消息类型筛选节点。
发起者类型转换节点
使用发起者实体类型路由传入消息
脚本过滤器节点
使用配置好的JS条件分析传入消息 JS函数接收以下三个参数:
- Metadate - 指消息元数据
- Msg - 指消息负载
- msgType - 指消息类型
可以通过msg变量访问消息负载。例如msg.temperature < 10; 可以通过元数据变量访问消息元数据。例如metadata.customerName === 'John'; 可以通过msgType变量访问消息类型。例如msgType === 'POST_TELEMETRY_REQUEST' 完整脚本实例:
if(msgType === 'POST_TELEMETRY_REQUEST') {
if(metadata.deviceType === 'vehicle') {
return msg.humidity > 50;
} else if(metadata.deviceType === 'controller') {
return msg.temperature > 20 && msg.humidity > 60;
}
}
return false;
可以使用测试JavaScript函数来验证JavaScript条件。 在以下教程中介绍使用该节点的实例:
- 创建和清除警报
- RPC调用请求响应
转换节点
将传入消息路由到一个或多个输出链。节点执行配置的JavaScript函数。 JavaScript函数接收3个参数:
- Metadate - 指消息元数据
- Msg - 指消息负载
- msgType - 指消息类型
该脚本应该返回一个数组,该数组包含应被路由消息的下一关系名称。如果返回的数组为空,消息则不会被路由到任何节点,这些消息将被丢弃。
可以通过msg变量访问消息负载。例如msg.temperature < 10; 可以通过元数据变量访问消息元数据。例如metadata.customerName === 'John'; 可以通过msgType变量访问消息类型。例如msgType === 'POST_TELEMETRY_REQUEST' 以下为完整脚本实例
if (msgType === 'POST_TELEMETRY_REQUEST') {
if (msg.temperature < 18) {
return ['Low Temperature Telemetry'];
} else {
return ['Normal Temperature Telemetry'];
}
} else if (msgType === 'POST_ATTRIBUTES_REQUEST') {
if (msg.currentState === 'IDLE') {
return ['Idle State', 'Update State Attribute'];
} else if (msg.currentState === 'RUNNING') {
return ['Running State', 'Update State Attribute'];
} else {
return ['Unknown State'];
}
}
return [];
可以使用JavaScript测试函数验证JavaScript转换函数。 选择自定义类型可以指定自定义关系名。这样就可以输入自定义关系名称。自定义关系名称不区分大小写。