全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
阿里云物联网套件

M2M设备间通信

更新时间:2018-04-17 14:17:28

这篇文档主要讲解如何基于物联网套件构建一个M2M设备间通信架构。本文将会用一个场景,分别使用规则引擎和Topic路由服务来实现M2M设备间通信,来描述这个最佳实践。

基于规则引擎的M2M设备间通信

用户控制智能灯。

M2M

  1. 先将智能灯连接到物联网套件,图中为智能灯申请的ProductKey:pk1,deviceName:light。图中智能灯采用MQTT长连接接入

  2. 首先手机App先请求用户自己的server注册登录,用户server将从套件中申请设备,并返回给手机App,让手机App可以作为一个设备连接到物联网套件,图中是HTTPS接入,申请的deviceName:controlApp

  3. 手机控制智能灯,首先需要将用户与智能灯绑定,当App请求用户server,server返回绑定成功的deviceName,即图中的light。

  4. 手机App获取到目标智能灯的deviceName,然后向套件中的Topic发送指令,图中例子Topic:/pk1/controlApp/update,其中指令中格式是JSON,并且带上目标智能灯的deviceName,图中例子{“TargetDevice”:”light”,”control”:”data”,….}

  5. 在套件里面配置规则引擎,图中例子处理数据:Select TargetDevice,..., From /pk1/+/update,转发数据:Republish Topic:/pk2/${TargetDevice}/get。这条规则的含义就是将产品pk1下面所有APP的指令转发产品pk2下面所有智能灯的订阅的Topic中。规则特别注意:

    • 处理数据,SQL语句需要将目标智能灯的deviceName筛选出来
    • 转发数据,选择发布到另一个Topic中,而且必须使用转义符${TargetDevice},通配所有目标智能灯,该例子中${TargetDevice}就转义成了light。这样APP发送的指令就可以通过规则动态路由到相应的目标智能灯上。
  6. 规则引擎,将手机App的指令到/pk2/light/get的Topic,智能灯订阅该Topic就可以接收指令更改状态。

  7. 同样,手机App可以向用户server发送解绑请求,指令不再发送目标智能灯的deviceName。

基于Topic路由服务的M2M设备间通信

用户控制智能灯。

路由服务实现M2M通信

  1. 先将智能灯连接到物联网套件,图中为智能灯申请的ProductKey:pk1,deviceName:light。图中智能灯采用MQTT长连接接入

  2. 首先手机App先请求用户自己的server注册登录,用户server将从套件中申请设备,并返回给手机App,让手机App可以作为一个设备连接到物联网套件,图中是HTTPS接入,申请的deviceName:controlApp

  3. 手机控制智能灯,首先需要将用户与智能灯绑定,当App请求用户server,server返回绑定成功的deviceName,即图中的light。

  4. 利用服务端Topic路由服务接口,添加路由关系,如上图中的路由关系SrcTopic:/pk2/controlApp/update,DstTopics:/pk1/light/get

  5. 手机App获取到目标智能灯的deviceName,然后向套件中的Topic发送指令,图中例子Topic:/pk2/controlApp/update,其中指令中格式是JSON,并且带上目标智能灯的deviceName,图中例子{“TargetDevice”:”light”,”control”:”data”,….}

  6. 在套件里面配置Topic路由服务,将数据从/pk2/controlApp/update转发/pk1/light/get,这样APP发送的指令就可以通过路由服务路由到相应的目标智能灯上。

  7. 同样,手机App可以调用服务端接口删除路由关系,指令不再发送目标智能灯的deviceName。

该方案,智能灯和手机App连接与通信的请求都交由物联网套件承担,客户不用关心高并发稳定通信等技术难点,也不需要购买大量服务器去承载这些请求,客户只需要实现自己的业务系统即可,实现自己的业务价值。

本文导读目录