全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
阿里云物联网套件

M2M高并发通信

更新时间:2017-11-06 14:55:25

这篇文档主要讲解如何基于物联网套件构建一个高可用可并发的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。

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

本文导读目录