JavaScript轻应用提供了网络管理相关的功能,APP可以通过JSAPI获取网络相关的信息,并且可以接收网络连接、断开的事件。
另外,轻应用也提供了通用的udp、tcp、http、mqtt等网络连接功能。
1、network接口
示例代码
var network = require('network');
network.connect({
ssid: 'aiot',
password: '12345678',
success: function(){
console.log('wifi connected');
}
});
var info = network.getInfo();
var type = network.getType();
var status = network.getStatus();
network.on('connect', function() {
console.log('wifi connect event');
});
network.on('disconnect', function() {
console.log('wifi disconnect event');
});
network.close();
该接口可以用来管理网络,获取网络信息,监听网络事件等。
事件
方法
获取网络类型。
WiFi连接网络。
WiFi信息获取。
WiFi关闭。
获取网络状态。
注册网络事件回调函数。
事件:'connect'
如果是WiFi网络,WiFi网络连接成功后,会触发'connect'事件。
事件:'disconnect'
如果是WiFi网络,WiFi网络断开连接时,会触发'disconnect'事件。
network.getType()
获取网络连接类型。
返回值
- String类型,网络类型,返回值:WiFi, 2G, 3G, 4G, 5G, unknown, none。
network.connect(Object option)
如果是WiFi网络,连接网络。非WiFi网络调用无效。
入参
Object类型,其参数有:
属性 | 类型 | 必填 | 描述 |
ssid | String | 是 | 要连接热点的ssid |
password | String | 是 | 要连接热点的password |
success | Function | 否 | 调用该接口成功后的回调函数 |
fail | Function | 否 | 调用该接口失败后的回调函数 |
network.getInfo()
获取网络信息。
返回值
Object类型,如果是WiFi网络, 其属性有:
属性 | 类型 | 描述 |
type | String | 默认为'wifi' |
ssid | String | 已连接热点的ssid |
bssid | String | 已连接热点的bssid |
rssi | Number | WiFi信号强度 |
ip | String | IP地址 |
Object类型,如果是Cellular网络,其属性有:
属性 | 类型 | 描述 |
type | String | 默认为'cellular' |
imei | String | 国际移动设备识别码 |
sn | String | 手机序列号 |
sim | Object | Integrate circuit card identity 集成电路卡识别码即SIM卡卡号,具体参数见下表 |
rssi | String | 信号强度值 |
snr | String | 信噪比 |
rsrp | String | Reference Signal Receiving Power,参考信号接收功率 |
rsrq | String | RSRQ(Reference Signal Receiving Quality)表示LTE参考信号接收质量 |
cqi | String | CQI是信道质量的信息指示,代表当前信道质量的好坏,和信道的信噪比大小相对应,取值范围0~31 |
sim说明
Object类型,具体属性为:
属性 | 类型 | 描述 |
iccid | String | Integrate circuit card identity 集成电路卡识别码即SIM卡卡号 |
network.disconnect()
如果是WiFi网络, 断开网络连接。
network.getStatus()
获取网络连接状态。
返回值
Object类型,具体属性为:
属性 | 类型 | 描述 |
status | String | 网络状态,返回值:'connect', 'disconnect', 'connecting' |
network.on(String event, Function callback)
注册网络事件回调函数。
入参
属性 | 类型 | 必填 | 描述 |
event | String | 是 | 注册的事件名称 |
callback | Function | 是 | 监听事件的回调函数 |
2、udp接口
示例代码
var udp = require('udp');
var udpSocket = udp.createSocket();
function arrayToString(fileData) {
var dataString = "";
for (var i = 0; i < fileData.length; i++) {
dataString += String.fromCharCode(fileData[i]);
}
return dataString;
}
udpSocket.on('message', function(data, rinfo) {
console.log('receive data from ' + rinfo.host + ' port: ' + rinfo.port);
console.log('udp socket just receive data is: ' + arrayToString(data));
udpClient.close();
});
udpSocket.on('close', function() {
console.log('udp close');
});
udpSocket.on('error', function(err) {
console.log('udp error ' + err);
});
setInterval(function() {
udpSocket.send({
address: '127.0.0.1',
port: 50000,
message: 'hello, this is amp',
success: function() {
console.log('send success');
}
});
}, 2000);
// bind port & start to receive message
udpSocket.bind();
2.1、createSocket()
创建一个 UDP Socket 实例。
返回值
一个 UDP Socket 实例。
2.2、UDPSocket 实例
事件
socket关闭时,会触发close事件。
socket数据发送成功后,会触发send事件。
接收到新的数据包时,会触发message事件。
发生错误时,会触发error事件。
属性
本地绑定的端口。
方法
绑定一个系统随机分配的可用端口,或绑定一个指定的端口号。
向指定的 IP 和 port 发送消息。
关闭 UDP Socket 实例,相当于销毁。
注册 UDP Socket 事件回调回调函数。
事件:'close'
socket关闭时,会触发'close'事件。
事件:'send'
socket数据发送成功后,会触发'send'事件。
事件:'message'
接收到新的数据包时,会触发'message'事件。'message'事件的回调函数参数有:
属性 | 类型 | 描述 |
message | Array | 接受到的UDP数据 |
rinfo | Object | 发送端地址信息,详细属性见下面 |
rinfo属性说明:
属性 | 类型 | 描述 |
host | String | 发送端IP地址 |
port | Number | 发送端端口 |
事件:'error'
发生错误时,会触发'error'事件。'error'事件的回调函数参数有:
属性 | 类型 | 描述 |
error | String | 错误信息 |
UDPSocket.localPort
本地绑定的端口。
UDPSocket.bind(Number port)
绑定一个系统随机分配的可用端口,或绑定一个指定的端口号。调用该接口后,会开始监听并接收UDP数据。
入参
属性 | 类型 | 必填 | 描述 |
port | Number | 否 | 指定要绑定的端口号,不传则返回系统随机分配的可用端口 |
返回值
- 端口号,Number类型。
UDPSocket.send(Object target)
向指定的 ip地址 和 port 发送消息。
入参
入参为 Object 类型,属性如下:
属性 | 类型 | 必填 | 描述 |
address | String | 是 | 要发消息的ip地址 |
port | Number | 是 | 要发送消息的端口号 |
message | String | 是 | 要发送的数据 |
success | Function | 否 | 发送成功时的回调函数 |
fail | Function | 否 | 发送失败时的回调函数 |
UDPSocket.close()
关闭 UDP Socket 实例,相当于销毁。
UDPSocket.on(String event, Function callback)
监听事件。
入参
属性 | 类型 | 必填 | 描述 |
event | String | 是 | 注册的事件名称 |
callback | Function | 是 | 监听事件的回调函数 |
3、tcp接口
示例代码
var tcp = require('tcp');
function onConnect() {
tcpClient.send({
message: 'hello, this is tcp client test',
success: function() {
console.log('tcp send success');
},
fail: function() {
console.log('tcp send failed');
}
});
}
var tcpClient = tcp.createClient({
host: '47.101.151.113',
port: 50020,
success: function() {
console.log('tcp client connect success');
},
fail: function() {
console.log('tcp client connect failed');
}
});
tcpClient.on('message', function(data) {
console.log('tcp receive data: ' + data);
tcpClient.close();
});
tcpClient.on('connect', function() {
console.log('tcp client connected');
onConnect();
});
tcpClient.on('close', function() {
console.log('tcp client closed');
});
tcpClient.on('error', function(err) {
console.log('tcp client error: ' + err);
});
3.1、createClient(Object options)
创建一个 TCPClient 实例,创建TCP客户端时会连接TCP Server。
入参
Object类型,其属性有:
属性 | 类型 | 必填 | 描述 |
host | String | 是 | 需要连接的IP地址或者域名 |
port | Number | 是 | 需要连接的端口号 |
success | Function | 否 | 连接成功的回调函数 |
fail | Function | 否 | 连接失败的回调函数 |
返回值
- 一个 TCPClient 实例。
3.2、TCPClient 实例
事件
当socket关闭时,触发'close'事件。
当连接到socket服务器时,触发'connect'事件。
当连接断开时,触发'disconnect'事件。
当socket接收到数据时,触发'message'事件。
当socket通信过程中遇到错误时,触发'error'事件。
属性
本地绑定的端口号。
方法
向TCP Server 发送消息。
关闭 TCP Client 实例,相当于销毁。
注册 TCP Client 事件回调函数。
事件:'close'
当socket关闭时,'close'事件触发。
事件:'connect'
当连接到socket服务器时,'connect'事件触发。
事件:'disconnect'
当连接断开时,'disconnect'事件触发。服务端断开连接、主动断开连接、网络发生异常等都会触发。
事件:'message'
当socket接收到数据时,'message'事件触发。回调函数的参数有:
属性 | 类型 | 描述 |
message | Array | 接收到的tcp数据。 |
事件:'error'
当socket通信过程中遇到错误时,'error'事件触发。'error'事件的回调函数参数有:
属性 | 类型 | 描述 |
error | String | 错误信息 |
TCPClient.localPort
本地绑定的端口号,该端口号为系统自动分配。
TCPClient.send(Object option)
向TCP Server 发送消息。
入参
入参为 Object 类型,属性有:
属性 | 类型 | 必填 | 描述 |
message | String | Array | 是 | 要发送的数据 |
success | Function | 否 | 发送成功的回调函数 |
fail | Function | 否 | 发送失败的回调函数 |
TCPClient.reconnect()
当发生 'disconnect'事件 时,可以使用该接口主动连接。
TCPClient.close()
关闭 UDP Socket 实例,断开连接。
TCPClient.on(String event, Function callback)
监听事件。
入参
属性 | 类型 | 必填 | 描述 |
event | String | 是 | 注册的事件名称 |
callback | Function | 是 | 监听事件的回调函数 |
4、http接口
示例代码
var http = require('http');
http.request({
url: 'http://appengine.oss-cn-hangzhou.aliyuncs.com/httpTest.txt',
method: 'GET',
headers: {
'content-type':'application/json'
},
timeout: 30000,
success: function(response) {
console.log(response);
}
});
4.1、request(Object option)
发起一个http请求。
入参
Object类型,属性如下:
属性 | 类型 | 必填 | 说明 |
url | String | 是 | 目标服务器URL,包括协议类型、地址、端口、URI等,比如http://appengine.oss-cn-hangzhou.aliyuncs.com/httpTest.txt 暂不支持https协议 |
headers | Object | 否 | 设置请求的 HTTP 头对象,默认 {'content-type': 'application/json'},该对象里面的 key 和 value 必须是 String 类型 |
method | String | 否 | 默认 GET,暂时只支持GET |
dataType | String | 否 | 期望返回的数据格式,默认 JSON,支持 JSON、text、base64 |
timeout | Number | 否 | 超时时间,单位是ms,默认是30000 |
success | Function | 否 | 调用成功的回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
success 回调函数
入参为 Object 类型,属性如下:
属性 | 类型 | 描述 |
data | String | 响应数据,格式取决于请求时的 dataType 参数 |
status | Number | 响应码 |
headers | Object | 响应头 |
5、mqtt接口
示例代码
var mqtt = require('mqtt');
function ArrayToString(fileData) {
var dataString = "";
for (var i = 0; i < fileData.length; i++) {
dataString += String.fromCharCode(fileData[i]);
}
return dataString;
}
function onConnect() {
// subscribe
mqttClient.subscribe({
topic: '/hello',
success: function() {
console.log('subscribe [/hello] success');
}
});
// publish
setInterval(function () {
mqttClient.publish({
topic: '/hello',
message: 'this is AMP mqtt test',
success: function() {
console.log('publish [/hello] success');
}
});
}, 2 * 1000);
}
// create mqtt client
var mqttClient = mqtt.createClient({
host: 'mqtt.eclipse.org',
port: 1883,
username: 'aiot',
password: '123',
success: function() {
console.log('mqtt connected');
},
fail: function() {
console.log('mqtt connect failed');
}
});
mqttClient.on('connect', function() {
console.log('mqtt connected');
onConnect();
});
mqttClient.on('message', function(topic, payload) {
console.log('[' + topic + '] message: ' + ArrayToString(payload));
});
5.1、createClient(Object options)
创建一个 MQTTClient 实例(客户端),创建时会连接 MQTT 服务端。暂不支持TLS。
入参
Object类型,其属性有:
属性 | 类型 | 必填 | 描述 |
host | String | 是 | 要连接的MQTT 服务端的地址,可以是ip地址,也可以是域名 |
port | Number | 否 | 要连接的MQTT 服务端的端口号,默认为1883 |
clientId | String | 否 | 设置clientId,默认为系统随机生成 |
username | String | 否 | 设置username |
password | String | 否 | 设置password |
keepalive_interval | Number | 否 | 设置MQTT心跳时间,单位秒,默认60,最小30秒 |
success | Function | 否 | 调用成功的回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
返回值
一个MQTTClient 实例。
5.2、MQTTClient 实例
事件
当mqtt关闭时,触发close事件。
当mqtt连接成功后,触发connect事件。
当mqtt连接断开时,触发'disconnect'事件。
当接收到publish数据时,message事件触发。
当发生错误时,error事件触发。
属性
当前是否连接成功。
方法
订阅topic。
取消订阅topic。
发布消息到指定topic。
关闭MQTT Client实例。
注册MQTT 事件回调函数。
事件:'close'
当mqtt关闭时,触发'close'事件。
事件:'connect'
当mqtt连接成功后,触发'connect'事件。
事件:'disconnect'
当mqtt连接断开时,触发'disconnect'事件。服务端断开连接、主动断开连接、网络发生异常等都会触发该事件。
事件:'message'
当接收到publish数据时,'message'事件触发。回调函数的参数有:
属性 | 类型 | 描述 |
topic | String | 接收到数据的topic |
message | Array | 接收到的数据 |
事件:'error'
当发生错误时,'error'事件触发。回调函数的参数有:
属性 | 类型 | 描述 |
error | String | 错误信息 |
MQTTClient.connected
Boolean类型,true代表连接成功,false代表连接断开。false时,底层会一直尝试重连。
MQTTClient.subscribe(Object option)
订阅topic。
入参
Object类型,具体属性为:
属性 | 类型 | 必填 | 描述 |
topic | String | 是 | 要订阅的topic |
qos | Number | 否 | QoS订阅等级,默认为0 |
success | Function | 否 | 订阅成功时的回调函数 |
fail | Function | 否 | 订阅失败时的回调函数 |
MQTTClient.unsubscribe(Object option)
取消订阅的topic。
入参
Object类型,具体属性为:
属性 | 类型 | 必填 | 描述 |
topic | String | 是 | 要取消订阅的topic |
success | Function | 否 | 取消订阅成功的回调函数 |
fail | Function | 否 | 取消订阅成功的回调函数 |
MQTTClient.publish(Object option)
向指定topic发布消息。
入参
Object类型,具体属性为:
属性 | 类型 | 必填 | 描述 |
topic | String | 是 | 要发布消息的topic |
message | String | Array | 是 | 要发送的数据 |
qos | Number | 否 | QoS订阅等级,默认为0 |
success | Function | 否 | 发布消息成功时的回调函数 |
fail | Function | 否 | 发布消息失败时的回调函数 |
MQTTClient.close()
关闭MQTTClient实例。
MQTTClient.on(String event, Function callback)
监听事件。
入参
属性 | 类型 | 必填 | 描述 |
event | String | 是 | 注册的事件名称 |
callback | Function | 是 | 监听事件的回调函数 |
事件类型
事件类型 | 描述 |
mqtt关闭事件 | |
连接上mqtt服务端事件 | |
接收到新的publish消息事件 | |
发生错误事件 |
开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/