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

传送门: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…

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理