赞
踩
除了基础的功能组件外,JavaScript轻应用还提供了阿里云智能物联网平台连接以及语音播报等能力,具体介绍如下。
示例代码
- /* iot - 阿里云IoT连接平台连接组件示例,产品功能定义:
-
- * [功能类型] ------ [功能名称] ------ [标志符] ------ [数据类型]
-
- * 属性 主灯开关 LightSwitch bool (0-关闭 1-开启)
-
- * 服务 开关翻转 ToggleLightSwitch -
-
- * 事件 故障上报 Error 参数标志符:ErrorCode
-
- * */
-
-
-
- var iot = require('iot');
-
-
-
- var productKey = '<product-key>';
-
- var deviceName = '<device-name>';
-
- var deviceSecret = '<device-secret>';
-
-
- var lightSwitch = 0;
-
-
- var device = iot.device({
-
- productKey: productKey,
-
- deviceName: deviceName,
-
- deviceSecret: deviceSecret,
-
- region: 'cn-shanghai',
-
- success: function () {
-
- console.log('connect success');
-
- onConnect();
-
- },
-
- fail: function () {
-
- console.log('connect failed');
-
- }
-
- });
-
-
- function onConnect() {
-
- setInterval(function () {
-
- /** post properties */
-
- lightSwitch = 1 - lightSwitch;
-
- device.postProps({
-
- payload: {
-
- LightSwitch: lightSwitch
-
- },
-
- success: function () {
-
- console.log('postProps success');
-
- },
-
- fail: function () {
-
- console.log('postProps failed');
-
- }
-
- });
-
- /** post events */
-
- device.postEvent({
-
- id: 'Error',
-
- params: {
-
- ErrorCode: 0
-
- },
-
- success: function () {
-
- console.log('postEvent success');
-
-
-
- },
-
- fail: function () {
-
- console.log('postEvent failed');
-
- }
-
- });
-
- }, 3000);
-
- }
-
-
-
- device.on('connect', function () {
-
- console.log('(re)connected');
-
- });
-
-
-
- /* 网络断开事件 */
-
- device.on('disconnect', function () {
-
- console.log('disconnect ');
-
- });
-
-
-
- /* 关闭连接事件 */
-
- device.on('close', function () {
-
- console.log('iot client just closed');
-
- });
-
-
-
- /* 发生错误事件 */
-
- device.on('error', function (err) {
-
- console.log('error ' + err);
-
- });
-
-
-
- /* 云端设置属性事件 */
-
- device.on('props', function (payload) {
-
- console.log('cloud req data is ', payload);
-
- console.log('LightSwitch ', payload.LightSwitch ? 'ON' : 'OFF');
-
- });
-
-
-
- /* 云端下发服务事件 */
-
- device.on('service', function (id, payload) {
-
- console.log('received cloud serviceid is ' + id);
-
- console.log('received cloud req_data is ' + payload);
-
- });
-
- var iot = require('iot');
-
-
-
- var productKey = '<product-key>';
-
- var deviceName = '<device-name>';
-
- var deviceSecret = '<device-secret>';
-
-
-
- /* 设备签名 */
-
- iot.sign({
-
- productKey: productKey,
-
- deviceName: deviceName,
-
- deviceSecret: deviceSecret,
-
- region: 'cn-shanghai',
-
- success: function (params) {
-
- console.log('sign success');
-
- console.log(params);
-
- },
-
- fail: function () {
-
- console.log('sign failed');
-
- }
-
- });
创建 iot 实例,同时会开始尝试连接阿里云IoT平台。iot实例默认开启TLS加密。
入参
属性 | 类型 | 必填 | 描述 |
productKey | String | 是 | 设备的prodctKey |
deviceName | String | 是 | 设备的deviceName |
deviceSecret | String | 是 | 设备的deviceSecret |
region | String | 否 | 阿里云region,默认值:cn-shanghai。阿里云region详细说明见阿里云物联网平台 - 地域和可用区 |
success | Function | 否 | 连接成功时的回调函数 |
fail | Function | 否 | 连接失败的回调函数 |
返回
进行设备签名。本接口相对独立,当 iot JSAPI 无法满足要求时,可以使用本接口进行设备认证,然后使用 mqtt JSAPI 接入阿里云物联网平台。设备签名请参考 设备接入Link SDK - 设备签名。
入参
属性 | 类型 | 必填 | 描述 |
productKey | String | 是 | 设备的prodctKey |
deviceName | String | 是 | 设备的deviceName |
deviceSecret | String | 是 | 设备的deviceSecret |
region | String | 否 | 阿里云region,默认值:cn-shanghai。阿里云region详细说明见阿里云物联网平台 - 地域和可用区 |
success | Function | 否 | 认证成功的回调函数 |
fail | Function | 否 | 认证失败的回调函数 |
success回调函数参数
Object类型,其属性有:
属性 | 类型 | 描述 |
host | String | 可以连接的MQTT服务器域名地址, 根据入参 region 自动计算 |
port | Number | 可以连接的MQTT服务器端口号, 根据标准MQTT协议一般是 1883 或者 443 |
username | String | 连接MQTT服务器时将要使用的用户名 |
password | String | 连接MQTT服务器时将要使用的密码, 和用户名一一对应 |
clientid | String | 连接MQTT服务器时标识设备的自定义ID, 服务器对此不做校验, 鉴权通过 username 和 password 进行 |
fail回调函数参数
属性 | 类型 | 描述 |
error | String | 错误信息 |
事件
当iot client 连接到iot平台时,触发connect事件。断开重连时也会触发该事件。
当连接断开时,触发'disconnect'事件。
当iot client 关闭时,触发close事件。
当iot云端下发属性设置时,触发props事件。
当iot云端调用设备service时,触发service事件。
当设备跟iot平台通信过程中遇到错误时,触发error事件。
方法
上报属性。
上报事件。
关闭iot实例。
注册iot事件回调函数。
当iot client 连接到iot平台时,触发'connect'事件。断开重连时也会触发该事件。
当连接断开时,触发'disconnect'事件。三元组错误、三元组重复上线、服务端断开连接、主动断开连接、网络发生异常等都会触发该事件。该事件触发时,会自动尝试重连。
当iot client 关闭时,触发'close'事件。
当iot云端下发属性设置时,触发'props'事件。
回调函数参数有:
属性 | 类型 | 描述 |
payload | Object | 服务端设置设备属性的内容 |
当iot云端调用设备service时,触发'service'事件。
回调函数参数有:
属性 | 类型 | 描述 |
id | String | 服务标志符,详细请参考什么是物的模型 |
payload | Object | 服务端设置设备属性的内容 |
当设备跟iot平台通信过程中遇到错误时,触发'error'事件。'error'事件的回调函数参数有:
属性 | 类型 | 描述 |
error | String | 错误信息 |
上报设备属性。
入参
Object类型,其属性有:
属性 | 类型 | 必填 | 描述 |
payload | Object | 是 | 设备定义的属性参数。详细请参考什么是物的模型 |
success | Function | 否 | 上报设备属性成功的回调函数 |
fail | Function | 否 | 上报设备属性失败的回调函数 |
上报设备的事件。
入参
Object类型,其属性有:
属性 | 类型 | 必填 | 描述 |
id | String | 是 | 事件标志符,详细请参考什么是物的模型 |
params | Object | 是 | 要上报的事件参数 |
success | Function | 否 | 上报设备事件成功的回调函数,其函数参数参见下面说明 |
fail | Function | 否 | 上报设备事件失败的回调函数 |
success回调函数参数:
属性 | 类型 | 描述 |
res | String | 服务端reply的消息内容 |
关闭IoT实例。
监听事件。
入参
属性 | 类型 | 必填 | 描述 |
event | String | 是 | 注册的事件名称 |
callback | Function | 是 | 监听事件的回调函数 |
示例代码
- var audioplayer = require('audioplayer');
-
-
- var audioplayerState = ['stop', 'paused', 'playing', 'listplay_begin', 'listplay_end', 'error'];
-
-
- audioplayer.on('stateChange', function(state) {
-
- console.log('audioplayer state: ' + audioplayerState[state]);
-
- });
-
-
- audioplayer.setVolume(60);
-
-
- audioplayer.play("/test.mp3");
-
-
- setTimeout(function() {
-
- console.log("playback pause");
-
- audioplayer.pause();
-
- var position = audioplayer.getPosition();
-
- var duration = audioplayer.getDuration();
-
- console.log('playback progress: ' + position + '/' + duration);
-
- }, 5000)
-
-
- setTimeout(function() {
-
- console.log("playback resume");
-
- audioplayer.resume();
-
- }, 10000)
-
-
- setTimeout(function() {
-
- console.log("playback from 1s");
-
- audioplayer.seekto(1);
-
- }, 15000)
-
-
- setTimeout(function() {
-
- var position = audioplayer.getPosition();
-
- var duration = audioplayer.getDuration();
-
- console.log('playback progress: ' + position + '/' + duration);
-
- }, 16000)
-
-
- setTimeout(function() {
-
- console.log("playback stop");
-
- audioplayer.stop();
-
- }, 30000)
开始播放指定的音频。
入参
属性 | 类型 | 必填 | 描述 |
path | String | 是 | 本地音频文件绝对路径或者音频url。 支持的音频格式: mp3、wav |
返回值
暂停播放。
入参
返回值
继续播放。
入参
返回值
停止播放。
入参
返回值
依次播放列表中的音频文件。
入参
返回值
设置播放音量。
入参
属性 | 类型 | 必填 | 描述 |
volume | Number | 是 | 音量大小,取值范围:0-100,默认:40 |
返回值
获取当前音量。
入参
返回值
获取当前播放器状态。
入参
返回值
播放器状态
属性 | 类型 | 描述 |
state | Number | 音频播放器当前状态 0 - 播放停止 1 - 播放暂停 2 - 播放开始 3 - 列表播放开始 4 - 列表播放结束 5 - 播放器错误 |
从指定位置处开始播放。
入参
属性 | 类型 | 必填 | 描述 |
seconds | Number | 是 | 播放位置,单位:秒 |
返回值
获取当前播放进度。
入参
返回值
获取当前音频文件时长。
入参
返回值
当播放器状态变化时,触发'stateChange'事件。
回调函数参数有:
属性 | 类型 | 描述 |
state | Number | 音频播放器当前状态 0 - 播放停止 1 - 播放暂停 2 - 播放开始 3 - 列表播放开始 4 - 列表播放结束 5 - 播放器错误 |
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。