天天看點

JavaScript輕應用網絡子產品介紹1、network接口2、udp接口3、tcp接口4、http接口5、mqtt接口開發者技術支援

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. network.on('disconnect', function() {
  15. console.log('wifi disconnect event');
  16. network.close();

該接口可以用來管理網絡,擷取網絡資訊,監聽網絡事件等。

事件

方法

擷取網絡類型。

WiFi連接配接網絡。

WiFi資訊擷取。

WiFi關閉。

擷取網絡狀态。

注冊網絡事件回調函數。

如果是WiFi網絡,WiFi網絡連接配接成功後,會觸發'connect'事件。

如果是WiFi網絡,WiFi網絡斷開連接配接時,會觸發'disconnect'事件。

擷取網絡連接配接類型。

傳回值

  • String類型,網絡類型,傳回值:WiFi, 2G, 3G, 4G, 5G, unknown, none。

如果是WiFi網絡,連接配接網絡。非WiFi網絡調用無效。

入參

Object類型,其參數有:

屬性 類型 必填 描述
ssid String 要連接配接熱點的ssid
password 要連接配接熱點的password
success Function 調用該接口成功後的回調函數
fail 調用該接口失敗後的回調函數

擷取網絡資訊。

Object類型,如果是WiFi網絡, 其屬性有:

type 預設為'wifi'
已連接配接熱點的ssid
bssid 已連接配接熱點的bssid
rssi Number WiFi信号強度
ip IP位址

Object類型,如果是Cellular網絡,其屬性有:

預設為'cellular'
imei 國際移動裝置識别碼
sn 手機序列号
sim Object Integrate circuit card identity 內建電路卡識别碼即SIM卡卡号,具體參數見下表
信号強度值
snr 信噪比
rsrp Reference Signal Receiving Power,參考信号接收功率
rsrq RSRQ(Reference Signal Receiving Quality)表示LTE參考信号接收品質
cqi CQI是信道品質的資訊訓示,代表目前信道品質的好壞,和信道的信噪比大小相對應,取值範圍0~31

sim說明

Object類型,具體屬性為:

iccid Integrate circuit card identity 內建電路卡識别碼即SIM卡卡号

如果是WiFi網絡, 斷開網絡連接配接。

擷取網絡連接配接狀态。

status 網絡狀态,傳回值:'connect', 'disconnect', 'connecting'

network.on(String event, Function callback)

event 注冊的事件名稱
callback 監聽事件的回調函數

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. return dataString;
  8. udpSocket.on('message', function(data, rinfo) {
  9. console.log('receive data from ' + rinfo.host + ' port: ' + rinfo.port);
  10. console.log('udp socket just receive data is: ' + arrayToString(data));
  11. udpClient.close();
  12. udpSocket.on('close', function() {
  13. console.log('udp close');
  14. udpSocket.on('error', function(err) {
  15. console.log('udp error ' + err);
  16. setInterval(function() {
  17. udpSocket.send({
  18. address: '127.0.0.1',
  19. port: 50000,
  20. message: 'hello, this is amp',
  21. success: function() {
  22. console.log('send success');
  23. }, 2000);
  24. // bind port & start to receive message
  25. udpSocket.bind();

2.1、createSocket()

建立一個 UDP Socket 執行個體。

一個 UDP Socket 執行個體。

2.2、UDPSocket 執行個體

socket關閉時,會觸發close事件。

socket資料發送成功後,會觸發send事件。

接收到新的資料包時,會觸發message事件。

發生錯誤時,會觸發error事件。

本地綁定的端口。

綁定一個系統随機配置設定的可用端口,或綁定一個指定的端口号。

向指定的 IP 和 port 發送消息。

關閉 UDP Socket 執行個體,相當于銷毀。

注冊 UDP Socket 事件回調回調函數。

socket關閉時,會觸發'close'事件。

socket資料發送成功後,會觸發'send'事件。

接收到新的資料包時,會觸發'message'事件。'message'事件的回調函數參數有:

message Array 接受到的UDP資料
rinfo 發送端位址資訊,詳細屬性見下面

rinfo屬性說明:

host 發送端IP位址
port 發送端端口

發生錯誤時,會觸發'error'事件。'error'事件的回調函數參數有:

error 錯誤資訊

綁定一個系統随機配置設定的可用端口,或綁定一個指定的端口号。調用該接口後,會開始監聽并接收UDP資料。

指定要綁定的端口号,不傳則傳回系統随機配置設定的可用端口
  • 端口号,Number類型。

向指定的 ip位址 和 port 發送消息。

入參為 Object 類型,屬性如下:

address 要發消息的ip位址
要發送消息的端口号
要發送的資料
發送成功時的回調函數
發送失敗時的回調函數

UDPSocket.on(String event, Function callback)

監聽事件。

注冊的 名稱
監聽 的回調函數

3、tcp接口

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

3.1、createClient(Object options)

建立一個

TCPClient

執行個體,建立TCP用戶端時會連接配接TCP Server。

Object類型,其屬性有:

需要連接配接的IP位址或者域名
需要連接配接的端口号
連接配接成功的回調函數
連接配接失敗的回調函數
  • 一個 執行個體。

3.2、TCPClient 執行個體

當socket關閉時,觸發'close'事件。

當連接配接到socket伺服器時,觸發'connect'事件。

當連接配接斷開時,觸發'disconnect'事件。

當socket接收到資料時,觸發'message'事件。

當socket通信過程中遇到錯誤時,觸發'error'事件。

本地綁定的端口号。

向TCP Server 發送消息。

關閉 TCP Client 執行個體,相當于銷毀。

注冊 TCP Client 事件回調函數。

當socket關閉時,'close'事件觸發。

當連接配接到socket伺服器時,'connect'事件觸發。

當連接配接斷開時,'disconnect'事件觸發。服務端斷開連接配接、主動斷開連接配接、網絡發生異常等都會觸發。

當socket接收到資料時,'message'事件觸發。回調函數的參數有:

接收到的tcp資料。

當socket通信過程中遇到錯誤時,'error'事件觸發。'error'事件的回調函數參數有:

本地綁定的端口号,該端口号為系統自動配置設定。

入參為 Object 類型,屬性有:

String | Array
發送成功的回調函數
發送失敗的回調函數

TCPClient.reconnect()

當發生

'disconnect'事件

時,可以使用該接口主動連接配接。

關閉 UDP Socket 執行個體,斷開連接配接。

TCPClient.on(String event, Function callback)

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. timeout: 30000,
  8. success: function(response) {
  9. console.log(response);

4.1、request(Object option)

發起一個http請求。

Object類型,屬性如下:

說明
url

目标伺服器URL,包括協定類型、位址、端口、URI等,比如http://appengine.oss-cn-hangzhou.aliyuncs.com/httpTest.txt

暫不支援https協定

headers 設定請求的 HTTP 頭對象,預設 {'content-type': 'application/json'},該對象裡面的 key 和 value 必須是 String 類型
method 預設 GET,暫時隻支援GET
dataType 期望傳回的資料格式,預設 JSON,支援 JSON、text、base64
timeout 逾時時間,機關是ms,預設是30000
調用成功的回調函數
調用失敗的回調函數

success 回調函數

data 響應資料,格式取決于請求時的 dataType 參數
響應碼
響應頭

5、mqtt接口

  1. var mqtt = require('mqtt');
  2. function ArrayToString(fileData) {
  3. // subscribe
  4. mqttClient.subscribe({
  5. topic: '/hello',
  6. console.log('subscribe [/hello] success');
  7. // publish
  8. setInterval(function () {
  9. mqttClient.publish({
  10. message: 'this is AMP mqtt test',
  11. console.log('publish [/hello] success');
  12. }, 2 * 1000);
  13. // create mqtt client
  14. var mqttClient = mqtt.createClient({
  15. host: 'mqtt.eclipse.org',
  16. port: 1883,
  17. username: 'aiot',
  18. password: '123',
  19. console.log('mqtt connected');
  20. console.log('mqtt connect failed');
  21. mqttClient.on('connect', function() {
  22. mqttClient.on('message', function(topic, payload) {
  23. console.log('[' + topic + '] message: ' + ArrayToString(payload));

5.1、createClient(Object options)

MQTTClient

執行個體(用戶端),建立時會連接配接 MQTT 服務端。暫不支援TLS。

要連接配接的MQTT 服務端的位址,可以是ip位址,也可以是域名
要連接配接的MQTT 服務端的端口号,預設為1883
clientId 設定clientId,預設為系統随機生成
username 設定username
設定password
keepalive_interval 設定MQTT心跳時間,機關秒,預設60,最小30秒

一個MQTTClient 執行個體。

5.2、MQTTClient 執行個體

當mqtt關閉時,觸發close事件。

當mqtt連接配接成功後,觸發connect事件。

當mqtt連接配接斷開時,觸發'disconnect'事件。

當接收到publish資料時,message事件觸發。

當發生錯誤時,error事件觸發。

目前是否連接配接成功。

訂閱topic。

取消訂閱topic。

釋出消息到指定topic。

關閉MQTT Client執行個體。

注冊MQTT 事件回調函數。

當mqtt關閉時,觸發'close'事件。

當mqtt連接配接成功後,觸發'connect'事件。

當mqtt連接配接斷開時,觸發'disconnect'事件。服務端斷開連接配接、主動斷開連接配接、網絡發生異常等都會觸發該事件。

當接收到publish資料時,'message'事件觸發。回調函數的參數有:

topic 接收到資料的topic
接收到的資料

當發生錯誤時,'error'事件觸發。回調函數的參數有:

Boolean類型,true代表連接配接成功,false代表連接配接斷開。false時,底層會一直嘗試重連。

要訂閱的topic
qos QoS訂閱等級,預設為0
訂閱成功時的回調函數
訂閱失敗時的回調函數

取消訂閱的topic。

要取消訂閱的topic
取消訂閱成功的回調函數

向指定topic釋出消息。

要釋出消息的topic
釋出消息成功時的回調函數
釋出消息失敗時的回調函數

關閉MQTTClient執行個體。

事件類型

close mqtt關閉事件
connect 連接配接上mqtt服務端事件
接收到新的publish消息事件
發生錯誤事件

開發者技術支援

如需更多技術支援,可加入釘釘開發者群,或者關注微信公衆号

JavaScript輕應用網絡子產品介紹1、network接口2、udp接口3、tcp接口4、http接口5、mqtt接口開發者技術支援

更多技術與解決方案介紹,請通路阿裡雲AIoT首頁

https://iot.aliyun.com/

繼續閱讀