节点概述


设备集成流由多个头尾连接的节点组成,每个节点会处理输入消息并将输出消息(包含 msgmetadata 的已处理或未处理输入消息)中继到下游节点或其他 EnOS 服务。


你可以使用 EnOS 管理控制台 中的 流设计器 将节点拖放到画布中,根据需要形成集成流。

节点类型

流设计器中的节点分为以下几个类型。

  • Server

    Server 节点将相应的服务器建立为集成流的起点,并触发随后的集成流过程。

  • Trigger

    Trigger 节点在没有任何输入的情况下触发集成流。因此,此类节点没有入口点。

  • Logic

    Logic 节点不会更改输入消息的内容,而只会处理消息格式、编排消息的中继和执行或根据需要裁剪消息。

  • Action

    Action 节点使用其输入消息来发起操作:对服务器进行查询、上传或下载文件,或压缩/解压缩文件。

  • Advanced

    Advanced 节点是上述几类非高级节点的功能组合。此类节点是为行业级解决方案而设计的。

表达式

消息分为两个部分,分别是 msgmetadatamsg 是消息的有效负载,而 metadata 则包含 JSON 格式的属性信息;例如,这些属性信息可通过输入消息和输出消息从一个节点传递到另一个节点。你可以使用表达式从节点的输入 msgmetadata(若为标准 JSON 对象)中检索特定信息,以便进行节点处理。


例如,表达式 ${msg.key} 可以快速检索键值对,其中 key 是 JSON 格式的键值对中的键。在下文所示示例中,节点会接收以下 JSON 对象作为其输入消息:

{
    "assetId":"Inverter",
    "timestamp":24214324324,
    "measurepoints":{
        "temperature":22.4,
        "humidity":78
    }
}


使用以下表达式将分别返回这些值。

    • 表达式

    • 返回值

    • ${msg.assetId}

    • Inverter

    • ${msg.measurepoints.humidity}

    • 78


同样,如果节点支持使用表达式引用其 JSON 元数据中的值,则可以使用 ${metadata.key} 返回所需的值,其中 key 是元数据中键值对的键。例如,对于 Task Manager 节点,每个任务对象都有一个唯一的任务 ID,该 ID 存储在 metadata 中,而且可通过表达式 ${metadata.taskId} 引用。

备注

表达式只能用于 JSON 对象,不能用于 JSON 数组。若要使用表达式,必须将任何非 JSON 输入转换为 JSON 对象。你可以使用 Script 节点转换输入。

节点列表

节点类型

节点

Server

Trigger

Logic

Action

Advanced