JavaScript轻应用网络模块介绍

JavaScript轻应用提供了网络管理相关的功能,APP可以通过JSAPI获取网络相关的信息,并且可以接收网络连接、断开的事件。

另外,轻应用也提供了通用的udp、tcp、http、mqtt等网络连接功能。

1、network接口

示例代码

  1. var network = require('network');
  2. network.connect({
  3. ssid: 'aiot',
  4. password: '12345678',
  5. success: function(){
  6. console.log('wifi connected');
  7. }
  8. });
  9. var info = network.getInfo();
  10. var type = network.getType();
  11. var status = network.getStatus();
  12. network.on('connect', function() {
  13. console.log('wifi connect event');
  14. });
  15. network.on('disconnect', function() {
  16. console.log('wifi disconnect event');
  17. });
  18. 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接口

示例代码

  1. var udp = require('udp');
  2. var udpSocket = udp.createSocket();
  3. function arrayToString(fileData) {
  4. var dataString = "";
  5. for (var i = 0; i < fileData.length; i++) {
  6. dataString += String.fromCharCode(fileData[i]);
  7. }
  8. return dataString;
  9. }
  10. udpSocket.on('message', function(data, rinfo) {
  11. console.log('receive data from ' + rinfo.host + ' port: ' + rinfo.port);
  12. console.log('udp socket just receive data is: ' + arrayToString(data));
  13. udpClient.close();
  14. });
  15. udpSocket.on('close', function() {
  16. console.log('udp close');
  17. });
  18. udpSocket.on('error', function(err) {
  19. console.log('udp error ' + err);
  20. });
  21. setInterval(function() {
  22. udpSocket.send({
  23. address: '127.0.0.1',
  24. port: 50000,
  25. message: 'hello, this is amp',
  26. success: function() {
  27. console.log('send success');
  28. }
  29. });
  30. }, 2000);
  31. // bind port & start to receive message
  32. 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接口

示例代码

  1. var tcp = require('tcp');
  2. function onConnect() {
  3. tcpClient.send({
  4. message: 'hello, this is tcp client test',
  5. success: function() {
  6. console.log('tcp send success');
  7. },
  8. fail: function() {
  9. console.log('tcp send failed');
  10. }
  11. });
  12. }
  13. var tcpClient = tcp.createClient({
  14. host: '47.101.151.113',
  15. port: 50020,
  16. success: function() {
  17. console.log('tcp client connect success');
  18. },
  19. fail: function() {
  20. console.log('tcp client connect failed');
  21. }
  22. });
  23. tcpClient.on('message', function(data) {
  24. console.log('tcp receive data: ' + data);
  25. tcpClient.close();
  26. });
  27. tcpClient.on('connect', function() {
  28. console.log('tcp client connected');
  29. onConnect();
  30. });
  31. tcpClient.on('close', function() {
  32. console.log('tcp client closed');
  33. });
  34. tcpClient.on('error', function(err) {
  35. console.log('tcp client error: ' + err);
  36. });

3.1、createClient(Object options)

创建一个 TCPClient 实例,创建TCP客户端时会连接TCP Server。

入参

Object类型,其属性有:

属性

类型

必填

描述

host

String

需要连接的IP地址或者域名

port

Number

需要连接的端口号

success

Function

连接成功的回调函数

fail

Function

连接失败的回调函数

返回值

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接口

示例代码

  1. var http = require('http');
  2. http.request({
  3. url: 'http://appengine.oss-cn-hangzhou.aliyuncs.com/httpTest.txt',
  4. method: 'GET',
  5. headers: {
  6. 'content-type':'application/json'
  7. },
  8. timeout: 30000,
  9. success: function(response) {
  10. console.log(response);
  11. }
  12. });

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,支持 JSONtextbase64

timeout

Number

超时时间,单位是ms,默认是30000

success

Function

调用成功的回调函数

fail

Function

调用失败的回调函数

success 回调函数

入参为 Object 类型,属性如下:

属性

类型

描述

data

String

响应数据,格式取决于请求时的 dataType 参数

status

Number

响应码

headers

Object

响应头

5、mqtt接口

示例代码

  1. var mqtt = require('mqtt');
  2. function ArrayToString(fileData) {
  3. var dataString = "";
  4. for (var i = 0; i < fileData.length; i++) {
  5. dataString += String.fromCharCode(fileData[i]);
  6. }
  7. return dataString;
  8. }
  9. function onConnect() {
  10. // subscribe
  11. mqttClient.subscribe({
  12. topic: '/hello',
  13. success: function() {
  14. console.log('subscribe [/hello] success');
  15. }
  16. });
  17. // publish
  18. setInterval(function () {
  19. mqttClient.publish({
  20. topic: '/hello',
  21. message: 'this is AMP mqtt test',
  22. success: function() {
  23. console.log('publish [/hello] success');
  24. }
  25. });
  26. }, 2 * 1000);
  27. }
  28. // create mqtt client
  29. var mqttClient = mqtt.createClient({
  30. host: 'mqtt.eclipse.org',
  31. port: 1883,
  32. username: 'aiot',
  33. password: '123',
  34. success: function() {
  35. console.log('mqtt connected');
  36. },
  37. fail: function() {
  38. console.log('mqtt connect failed');
  39. }
  40. });
  41. mqttClient.on('connect', function() {
  42. console.log('mqtt connected');
  43. onConnect();
  44. });
  45. mqttClient.on('message', function(topic, payload) {
  46. console.log('[' + topic + '] message: ' + ArrayToString(payload));
  47. });

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

监听事件的回调函数

事件类型

事件类型

描述

close

mqtt关闭事件

connect

连接上mqtt服务端事件

message

接收到新的publish消息事件

error

发生错误事件

开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

JavaScript轻应用网络模块介绍

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

上一篇:纯虚函数实现接口类:接口编程实战演练


下一篇:文件目录的权限与管理