使用 IBM Bluemix 上的 IoT 及 Push 服务发送推送消息到手机

  引言

  Bluemix 是 IBM 最新的云服务,是企业和开发人员可以快速轻松地创建,部署和管理应用程序的云平台。Bluemix 提供企业级的服务,可以轻松地与云应用程序集成。它目前提供了 100 多种服务,覆盖了认知、移动、运维、web 和应用程序、网络、集成、数据与分析、安全、存储、业务分析、物联网、及 API 等。

  本文就是使用了 Bluemix 上的移动,物联网及存储等相关的服务,基于 Node-RED 快速构建了一个推送消息给手机,并且可以查看历史数据的应用。该应用主要架构如下:

  图 1 架构图

  主要工作流程:

  设备(在这里是从命令行)发消息给 IoT 平台

  IoT 平台转发消息给 Node-RED

  当收到消息时,Node-RED 调用 Push 服务

  Push 服务发推送消息给手机端

  Node-RED 收到消息时将数据也存入 Cloudant 数据库

  手机客户端从 Cloudant 数据库读取历史消息

  为实现以下应用程序需要哪些准备:

  Bluemix 账号

  基本的 Java 技能

  基本的 Swift 技能

  下面我们分步骤详细介绍如何实现这些功能。

  第一步:创建应用程序

  用 IBM ID 登录到 Bluemix,选择目录(CATALOG),选择 Internet of Things Platform Starter 模板。

  图 2 Internet of Things Platform Starter 模板位置

  在打开的页面上,左边栏是关于 Internet of Things Platform Starter 的概要信息,比如版本,类型,以及详细文档的链接;中间栏是当前版所包含的服务,当前版本包含 SDK for Node.js, Cloudant NoSQL DB,及 Internet of Things Platform 服务,那么我们在后边就不需要再额外添加这些服务,此外,还列出了其主要功能及如何收费等信息;右边栏是要配置的信息,输入 Name,Host 字段会根据 Name 的值自动生成,保持其他字段不变,点击创建(CREATE)。

  图 3 Internet of Things Platform Starter 模板页面

  第二步:启用移动应用程序

  点击概述(Overview),找到启用移动应用程序(Enable App for Mobile),并点击。启用移动应用程序的对话框会弹出,显示如下:要启用您的移动应用程序,Bluemix 将新增 Mobile Client Access 提供的应用程序安全性功能。要将 Mobile Client Access 服务添加到您的应用程序吗?选择添加(ADD)。在我们的例子中,移动端的安全问题并不是重点,但是这是启用移动应用程序的必要条件,我们必须添加这个服务。随后选择重新编译打包应用程序(Restage Application)。当应用程序重新启动结束,在概述(Overview)页面的右上角,会出现一个移动选项(Mobile Options),点击它,会出现路径(Route)和应用程序 GUID 两个字段,

  图 4 查看 Route 和 App GUID

  这两个字段很重要,在将来我们实现移动端程序时,会有如下字样的代码,需要指定 Route 和 App GUID,才能连上 Bluemix 里的应用程序。

  IMFClient.sharedInstance().initializeWithBackendRoute("http://iot-push.mybluemix.net", backendGUID: "27c9eb7b-0df6-43ac-b338-4678c926e936")

  第三步:添加推送(Push)服务

  推送服务能帮助我们发送推送消息到 Android 或者 iOS 设备,这些设备能作为标记(tag)或者设备唯一标识符的目标,我们使用简单而统一的 REST API 以配置,订阅,发送和监控推送消息到 Android 和 iOS 设备。

  添加推送服务