在打开的 Node-RED 页面,找到 Go to your Node-RED flow editor 按钮,点击以进入流编辑器。接下来,我们将使用 Node-RED 流编辑器来构建一个工作流。 读者也可以 点击这里 打开 Node-RED 流编辑器。
1.在左侧调色板中,找到 input 区域,拖拽 ibmiot 节点
拖到画布上,双击以打开编辑页面进行配置。首先要选择认证(Authentication)的方式:此下拉框有 3 个值 Quickstart, API Key, Bluemix Service. Quickstart 是用于快速入门的案例学习用的;API Key 选项需要输入 API Key 和 API token,多用于 IoT Platform 与 Node-RED 不在同一个 app 时;Bluemix Service 是内部的服务调用,并不需要输入参数,主要用于 Node-RED 与 IoT 在同一 App 时。因为我们的 App 里边有 IoT Platform 服务,我们可以选择 Bluemix Service 直接连接。选定认证方式后,需要选择输入类型(Input Type),这里输入类型有 Device Event, Device Command, Device Status, Application Status, 从名称上我们即可知道他们 主要检测的重点。我们在此选择 Device Event。至于设备类型(Device Type),设备标识(Device Id),事件(Event),格式(Format)等选择 All 即可,再填写节点名称(Name),点击 OK。
图 17 ibmiot 节点的编辑页面
2.在 function 区域找到 json 节点
,并将其拖拽到画布上。我们使用此节点是为了解析 msg.payload,把一个 javascript 对象转化为 json 字符串。 3.在 function 区域找到 function 节点
,并将其拖拽到画布上。双击该节点,打开编辑页面。在 Name 字段输入该节点名称(建议填上该字段,否则节点显示名为空),在 Function 区域已有一句 return msg; 在此之前加入如下代码:
var message = JSON.parse(msg.payload).d ;
msg.payload = {
"message": {“alert": message.content }
};
return msg;
图 18 function 节点的编辑页面
4.在 output 区域找到 ibmpush 节点
,将其拖拽至画布。双击该节点,打开编辑页面。因为当前节点所属的应用程序有 Push 服务,所以对该节点初始化时会自动去读取该应用程序 ID 和 push 服务的 appSecret 字段。编辑页面上的可编辑的推送属性只有 2 个:模式(Mode)和类型(Type)。
模式有沙箱(Sandbox)和生产(Production)模式,由于我们的证书是生产模式下的,所以我们选择生产模式。
类型一共有 5 种:
广播(Broadcast):可以向所有设备发送
通过标记(By Tags)
通过设备唯一标识符(By DeviceIds)
仅 Android 设备(Only Android devices)
仅 iOS 设备(Only iOS devices)
由于我们 demo 的移动端程序仅支持 iOS 设备,所以我们选择 alt="物联网" width="524" height="426" />
5.在 storage 区域找到 cloudant 节点
,将其拖拽至画布。双击节点,打开编辑页面。Service 字段已经自动定位到当前应用程序里附带的 Cloudant 数据库;Database 字段输入我们前面已经创建好的数据库名;Operation 字段表明要执行的操作是插入(insert)还是删除(remove),因为我们要存查消息进数据库,所以这里选择 insert;勾上 alt="物联网" width="508" height="371" />