阿里云物联网平台使用总结

阿里云物联网平台设备连接的限制

  • 一个三元组(clientID, deviceName, productKey)只能有一个连接,硬件设备和小程序不能共用一个三元组同时在线,否则会互相踢掉。
  • 修改clientID也无效,因为阿里云会校验deviceName和productKey。

也就是说不能使用同一套连接配置给小程序和通信模块同时连接

image-20250622150709331

小程序和硬件双向同步的思路

教程:

采用M2M方案,就是创建两个设备:

  • 一个是真正的硬件设备;
  • 一个是小程序对应的虚拟设备。

各自连接自己的三元组和配置信息。

然后利用消息转发中的云产品流转功能,配置两个设备间的消息互相流转,实现简单的双向同步。

流转规则的解析器示例:

// 设备上报数据内容,json格式
var data = payload('json');

// 流转到另一个Topic
writeIotTopic(1001, "/sys/axxxLP/webapp/thing/event/property/post", data);
writeIotTopic(1001, "/" + "axxx" + "/" + "tempdevice_1" + "/user/get", data);

新的问题:小程序只能一个人同时使用

小程序和设备虽然同步了,但小程序只能有一个用户连接。如果有两个人同时连接小程序,就会互相踢掉。

解决方案是:

  • 使用阿里云官方的消息转发的AMQP服务,通过云平台推送消息到后端服务器,由后端统一处理和转发给多个客户端。
  • 但这个方案比较复杂,也不适合个人开发者。

另一个更简便的方法:基于官方OpenAPI调用

架构示意图如下

[小程序用户A]     \
                  \
[小程序用户B] ----> [自建后端服务] <---> [阿里云IoT平台] <---> [真实设备]
                  /
[小程序用户C]     /

打开阿里云官方的OpenAPI门户,可以发现有大量API可以用来:

  • 查询设备历史数据;
  • 设置设备属性;
  • 等等

我们可以:

  • 可以基于官方的SDK,自己搭建一个后端服务;
  • 前端通过调用后端API获取数据或操作设备。

这样就可以避免连接数限制和消息同步的复杂问题,实现多用户访问。

总结建议:如何选择?

场景类型 推荐方案 理由
单用户设备控制 M2M 方案 实时性强、实现简单(如智能家电控制,数据大屏展示)
多用户后台系统 OpenAPI + 后端服务 支持并发、权限控制灵活(如物业管理平台,报表统计)
混合型需求 结合两者 例如:前端操作走 API,实时推送走 WebSocket + IoT 平台订阅机制
posted @ 2025-06-22 15:34  海浪博客  阅读(53)  评论(0)    收藏  举报