关于传感器:IoT-物联网平台如何实现-100万秒-消息广播实践类

37次阅读

共计 2255 个字符,预计需要花费 6 分钟才能阅读完成。

传送门:5 个视频解说,30 个场景案例汇总

在物联网场景中,经常会有全量设施音讯播送诉求。如何把音讯霎时推送到海量在线设施上?
阿里云 IoT 企业物联网实例为开发者提供了 PubBroadcast 接口,能够在 秒级触达 100 万 在线设施,使得企业面在面对高并发需要时无后顾之忧。

创立 4 个设施和播送内容

咱们以收款音箱场景音讯播送为例,演示全量设施播送性能。

设施和播送音讯体

全量设施播送接口 PubBroadcast

设施端收到的消息报文示例:Topic 示例:

Topic 示例:/sys/g6palBDnzyT/dk004/broadcast/request/1386995865331441413

Payload 示例:{
    "volume": 80,
    "mode": 4
}

全量播送开发实战

设施端开发
IoT 物联网平台默认提供全量播送 Topic,设施端无需事后订阅,即可接管到云端的播送音讯。设施端利用程序代码(Node.js 示例):

// node broadcast-device.js
const mqtt = require('aliyun-iot-mqtt');

//1. 设施身份三元组 + 区域
const options = require("./iot-device-config.json");

// 2. 建设 MQTT 连贯
const client = mqtt.getAliyunIotMqttClient(options);

// 零碎全量播送 Topic 前缀
const allBroadcastTopic = `/sys/${options.productKey}/${options.deviceName}/broadcast/request`;

client.on('message', function(topic, message) {
    // 过滤全量播送音讯
    if (topic.indexOf(allBroadcastTopic) > -1) {console.log("设施收到全量播送音讯:")
        console.log("\ttopic=" + topic)
        console.log("\tmessage=" + message)
    }
})

iot-device-config.json 设施配置参数:

{
    productKey: "g6palBDnzyT",
    deviceName: "dk004",
    deviceSecret: "424ed56661980c604255507d1b81464e",
    host: "iot-060a08kg.mqtt.iothub.aliyuncs.com"
}

云端后盾开发
云端业务零碎调用 IoT 物联网实例的 PubBroadcast 接口,即可发送播送音讯,触达全量在线设施。调用代码示例(Node.js):

// node broadcast.js
const co = require('co');

const RPCClient = require('@alicloud/pop-core').RPCClient;

const options = {
    accessKey: "本人的 accessKey",
    accessKeySecret: "本人的 accessKeySecret"
};

//1. 创立 client
const client = new RPCClient({
    accessKeyId: options.accessKey,
    secretAccessKey: options.accessKeySecret,
    endpoint: 'https://iot.cn-shanghai.aliyuncs.com',
    apiVersion: '2018-01-20'
});

// 2. 结构 iot API
// 这里是 POP API 的 Action
const action = 'PubBroadcast';
// 播送内容
const payload = {
    volume: 80,
    mode: 4
};
// 残缺入参 params
const params = {
    ProductKey: "g6palBDnzyT",
    IotInstanceId: "iot-064a04kg",
    MessageContent: new Buffer(JSON.stringify(payload)).toString("base64")
};

co(function*() {
    //3. 发动全量播送 PubBroadcast API 调用
    try {const response = yield client.request('PubBroadcast', params);

        console.log("PubBroadcast 胜利 =====>", JSON.stringify(response));
    } catch (err) {console.log("PubBroadcast 失败 =====>", JSON.stringify(err));
    }
});

全量播送联调

业务服务器调用 PubBroadcast API 日志:

4 个设施端收到的播送消息日志:
Topic 的音讯 id 雷同,deviceName 不同

往期举荐

1、39 张传感器工作原理 GIF 图汇总
2、智能手持测温枪开发实际
3、JMeter 压测 MQTT 服务性能实战
4、IoT 物联网平台日志服务详解
5、自建 MQTT 集群迁徙阿里云 IoT 实际
6、工业 Modbus 电力 104 规约接入 IoT 平台
7、设施免烧录三元组,即时注册解决方案
8、IoT+TSDB+Quick BI 搭建楼宇环境监控
9、JS 全栈开发,构建智能家居小程序

物联网平台产品介绍详情:https://www.aliyun.com/produc…

            阿里云物联网平台客户交换群

正文完
 0