经过两年的开发,Node-RED终于发布了1.0版,带来了许多变化。Node-RED 1.0的主要新特性包括新的异步消息传递模型、新的完成API和默认的消息克隆。此外,可视化编辑器也经过了改进。
Node-RED是IBM为简化工业物联网解决方案而创建的一个开源可视化编程环境,它支持通过连接表示物理设备、云系统、数据库和API等的节点来创建复杂的系统。节点从任何输入节点接收消息,处理它,并将其传播到输出节点。整个结果流组成了系统执行的计算。
Node-RED提供大量的节点来处理各种常见的任务,包括发送和接收HTTP/UDP/TCP/MQTT消息、运行命令、处理文件,还包括用于简化复杂逻辑构建的节点,比如调试节点、信息多路复用器、分离器、消息缓冲区等等。更多的节点可以从Node-RED库中获得。
迁移到完全异步的消息传递模型——这意味着所有节点现在都具有异步行为,而不是说有些节点是异步的,有些是同步的——为Node-RED带来了一些一致性。然而,这需要开发人员确保他们现有的流不依赖于任何同步节点。在以前的版本中,如果你有一个完全由同步节点组成的流,则消息将在一次JavaScript事件循环中流经所有节点。在Node-RED 1.0中,每个节点处理其输入消息,然后将控制权交给主事件循环。事件循环的下个步骤将根据运行时内部队列上的优先级处理该消息或其他消息。
切换到完全异步的消息传递是Node-RED路线图未来功能的先决条件,即将代码插入流以自定义消息路由路径的特性。此外,由于完全同步节点的序列可以在不可预测的时间跨度内劫持事件循环,所以消除这个行为为使用超时控制未进入过时状态的系统铺平了道路,并且保证每个进入系统的消息有大量的计算时间。
与新的异步消息传递模型相关,节点现在可以使用新的API来指定何时完成消息传递。简而言之,当节点接收到新消息时,它还将接收特定于该消息的send和done回调,从而使运行时可以精确地跟踪哪些消息已被完全处理。这里还引入了一个Complete节点,可以在节点没有输出完成处理时触发它。所有现有的节点应该逐渐迁移到新的API,但是没有必要着急,因为Node-RED运行时在一段时间内仍然支持旧的API。
最后,引入异步消息传递意味着默认情况下将克隆所有消息。这与以前的模型有很大的不同,以前的模型努力避免消息重复。虽然新行为肯定会对性能产生影响,但它将确保多个异步更改时消息的正确性和无损性。
最后,Node-RED可视化编辑器面板经过了重新组织,使用起来更加直观。许多节点被删除了,包括Twitter、电子邮件、Feedparser等。子流可配置性和JSON编辑器都经过了改进,现在对新手来说更友好了。
Node-RED可以运行在主要的操作系统上,包括macOS、Windows和Linux,以及物联网设备和工业机器上。你可以使用Docker镜像轻松地运行它。
原文链接:
领取专属 10元无门槛券
私享最新 技术干货