JavaScript轻应用网络模块介绍

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

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

发生错误事件

开发者技术支持

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

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

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
10天前
|
人工智能 运维 物联网
AI在蜂窝网络中的应用前景
AI在蜂窝网络中的应用前景
22 3
|
23天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
70 6
|
17天前
|
监控 安全
公司上网监控:Mercury 在网络监控高级逻辑编程中的应用
在数字化办公环境中,公司对员工上网行为的监控至关重要。Mercury 作为一种强大的编程工具,展示了在公司上网监控领域的独特优势。本文介绍了使用 Mercury 实现网络连接监听、数据解析和日志记录的功能,帮助公司确保信息安全和工作效率。
87 51
|
5天前
|
存储 缓存 JavaScript
如何优化Node.js应用的内存使用以提高性能?
通过以上多种方法的综合运用,可以有效地优化 Node.js 应用的内存使用,提高性能,提升用户体验。同时,不断关注内存管理的最新技术和最佳实践,持续改进应用的性能表现。
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
13天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
11天前
RS-485网络中的标准端接与交流电端接应用解析
RS-485,作为一种广泛应用的差分信号传输标准,因其传输距离远、抗干扰能力强、支持多点通讯等优点,在工业自动化、智能建筑、交通运输等领域得到了广泛应用。在构建RS-485网络时,端接技术扮演着至关重要的角色,它直接影响到网络的信号完整性、稳定性和通信质量。
|
14天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
14天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
43 5
|
14天前
|
运维 物联网 网络虚拟化
网络功能虚拟化(NFV):定义、原理及应用前景
网络功能虚拟化(NFV):定义、原理及应用前景
31 3
下一篇
无影云桌面