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)
监听事件。
入参
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)
监听事件。
入参
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 |
是 |
监听事件的回调函数 |
事件类型
开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/