女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發網絡管理:ohos.net.webSocket WebSocket連接

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-19 17:12 ? 次閱讀

WebSocket連接

說明: 本模塊首批接口從API version 6開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

使用WebSocket建立服務器與客戶端的雙向連接,需要先通過[createWebSocket]方法創建[WebSocket]對象,然后通過[connect]方法連接到服務器。當連接成功后,客戶端會收到[open]事件的回調,之后客戶端就可以通過[send]方法與服務器進行通信。當服務器發信息給客戶端時,客戶端會收到[message]事件的回調。當客戶端不要此連接時,可以通過調用[close]方法主動斷開連接,之后客戶端會收到[close]事件的回調。

若在上述任一過程中發生錯誤,客戶端會收到[error]事件的回調。

導入模塊

import webSocket from '@ohos.net.webSocket';

完整示例

import webSocket from '@ohos.net.webSocket';

var defaultIpAddress = "ws://";
let ws = webSocket.createWebSocket();
ws.on('open', (err, value) = > {
    console.log("on open, status:" + value['status'] + ", message:" + value['message']);
    // 當收到on('open')事件時,可以通過send()方法與服務器進行通信
    ws.send("Hello, server!", (err, value) = > {
        if (!err) {
            console.log("send success");
        } else {
            console.log("send fail, err:" + JSON.stringify(err));
        }
    });
});
ws.on('message', (err, value) = > {
    console.log("on message, message:" + value);
    // 當收到服務器的`bye`消息時(此消息字段僅為示意,具體字段需要與服務器協商),主動斷開連接
    if (value === 'bye') {
        ws.close((err, value) = > {
            if (!err) {
                console.log("close success");
            } else {
                console.log("close fail, err is " + JSON.stringify(err));
            }
        });
    }
});
ws.on('close', (err, value) = > {
    console.log("on close, code is " + value.code + ", reason is " + value.reason);
});
ws.on('error', (err) = > {
    console.log("on error, error:" + JSON.stringify(err));
});
ws.connect(defaultIpAddress, (err, value) = > {
    if (!err) {
        console.log("connect success");
    } else {
        console.log("connect fail, err:" + JSON.stringify(err));
    }
});

webSocket.createWebSocket

createWebSocket(): WebSocket

創建一個WebSocket,里面包括建立連接、關閉連接、發送數據和訂閱/取消訂閱WebSocket連接的打開事件、接收到服務器消息事件、關閉事件和錯誤事件。

系統能力 :SystemCapability.Communication.NetStack

返回值:

類型說明
[WebSocket]返回一個WebSocket對象,里面包括connect、send、close、on和off方法。

示例:

let ws = webSocket.createWebSocket();

WebSocket

在調用WebSocket的方法前,需要先通過[webSocket.createWebSocket]創建一個WebSocket。

connect

connect(url: string, callback: AsyncCallback): void

根據URL地址,建立一個WebSocket連接,使用callback方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
urlstring建立WebSocket連接的URL地址。
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, (err, value) = > {
	if (!err) {
		console.log("connect success");
	} else {
		console.log("connect fail, err:" + JSON.stringify(err))
	}
});

connect

connect(url: string, options: WebSocketRequestOptions, callback: AsyncCallback): void

根據URL地址和header,建立一個WebSocket連接,使用callback方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
urlstring建立WebSocket連接的URL地址。
optionsWebSocketRequestOptions參考[WebSocketRequestOptions]。
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, {
	header: {
		"key": "value",
		"key2": "value2"
	}
}, (err, value) = > {
	if (!err) {
		console.log("connect success");
	} else {
		console.log("connect fail, err:" + JSON.stringify(err))
	}
});

connect

connect(url: string, options?: WebSocketRequestOptions): Promise

根據URL地址和header,建立一個WebSocket連接,使用Promise方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
urlstring建立WebSocket連接的URL地址。
optionsWebSocketRequestOptions參考[WebSocketRequestOptions]。

返回值:

類型說明
Promise以Promise形式返回建立連接的結果。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
let promise = ws.connect(url);
promise.then((value) = > {
	console.log("connect success")
}).catch((err) = > {
	console.log("connect fail, error:" + JSON.stringify(err))
});

send

send(data: string | ArrayBuffer, callback: AsyncCallback): void

通過WebSocket連接發送數據,使用callback方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
datastringArrayBuffer 8+
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, (err, value) = > {
	ws.send("Hello, server!", (err, value) = > {
		if (!err) {
			console.log("send success");
		} else {
			console.log("send fail, err:" + JSON.stringify(err))
		}
	});
});

send

send(data: string | ArrayBuffer): Promise

通過WebSocket連接發送數據,使用Promise方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
datastringArrayBuffer 8+

返回值:

類型說明
Promise以Promise形式返回發送數據的結果。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
ws.connect(url, (err, value) = > {
	let promise = ws.send("Hello, server!");
	promise.then((value) = > {
		console.log("send success")
	}).catch((err) = > {
		console.log("send fail, error:" + JSON.stringify(err))
	});
});

close

close(callback: AsyncCallback): void

關閉WebSocket連接,使用callback方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
ws.close((err, value) = > {
	if (!err) {
		console.log("close success")
	} else {
		console.log("close fail, err is " + JSON.stringify(err))
	}
});

close

close(options: WebSocketCloseOptions, callback: AsyncCallback): void

根據可選參數code和reason,關閉WebSocket連接,使用callback方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
optionsWebSocketCloseOptions參考[WebSocketCloseOptions]。
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
ws.close({
	code: 1000,
	reason: "your reason"
}, (err, value) = > {
	if (!err) {
		console.log("close success")
	} else {
		console.log("close fail, err is " + JSON.stringify(err))
	}
});

close

close(options?: WebSocketCloseOptions): Promise

根據可選參數code和reason,關閉WebSocket連接,使用Promise方式作為異步方法。

需要權限 :ohos.permission.INTERNET

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
optionsWebSocketCloseOptions參考[WebSocketCloseOptions]。

返回值:

類型說明
Promise以Promise形式返回關閉連接的結果。

示例:

let ws = webSocket.createWebSocket();
let url = "ws://"
let promise = ws.close({
	code: 1000,
	reason: "your reason"
});
promise.then((value) = > {
	console.log("close success")
}).catch((err) = > {
	console.log("close fail, err is " + JSON.stringify(err))
});

on('open')

on(type: 'open', callback: AsyncCallback ): void

訂閱WebSocket的打開事件,使用callback方式作為異步方法。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'open':WebSocket的打開事件。
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
ws.on('open', (err, value) = > {
	console.log("on open, status:" + value['status'] + ", message:" + value['message']);
});

off('open')

off(type: 'open', callback?: AsyncCallback ): void

取消訂閱WebSocket的打開事件,使用callback方式作為異步方法。

說明: 可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'open':WebSocket的打開事件。
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
let callback1 = (err, value) = > {
	console.log("on open, status:" + value['status'] + ", message:" + value['message']);
}
ws.on('open', callback1);
// 可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱
ws.off('open', callback1);

on('message')

on(type: 'message', callback: AsyncCallback): void

訂閱WebSocket的接收到服務器消息事件,使用callback方式作為異步方法。

說明: AsyncCallback中的數據可以是字符串(API 6)或ArrayBuffer(API 8)。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'message':WebSocket的接收到服務器消息事件。
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
ws.on('message', (err, value) = > {
	console.log("on message, message:" + value);
});

off('message')

off(type: 'message', callback?: AsyncCallback): void

取消訂閱WebSocket的接收到服務器消息事件,使用callback方式作為異步方法。

說明: AsyncCallback中的數據可以是字符串(API 6)或ArrayBuffer(API 8)。 可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'message':WebSocket的接收到服務器消息事件。
callbackAsyncCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
ws.off('message');

on('close')

on(type: 'close', callback: AsyncCallback<{ code: number, reason: string }>): void

訂閱WebSocket的關閉事件,使用callback方式作為異步方法。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'close':WebSocket的關閉事件。
callbackAsyncCallback<{ code: number, reason: string }>回調函數。

示例:

let ws = webSocket.createWebSocket();
ws.on('close', (err, value) = > {
	console.log("on close, code is " + value.code + ", reason is " + value.reason);
});

off('close')

off(type: 'close', callback?: AsyncCallback<{ code: number, reason: string }>): void

取消訂閱WebSocket的關閉事件,使用callback方式作為異步方法。

說明: 可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'close':WebSocket的關閉事件。
callbackAsyncCallback<{ code: number, reason: string }>回調函數。

示例:

let ws = webSocket.createWebSocket();
ws.off('close');

on('error')

on(type: 'error', callback: ErrorCallback): void

訂閱WebSocket的Error事件,使用callback方式作為異步方法。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'error':WebSocket的Error事件。
callbackErrorCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
ws.on('error', (err) = > {
	console.log("on error, error:" + JSON.stringify(err))
});

off('error')

off(type: 'error', callback?: ErrorCallback): void

取消訂閱WebSocket的Error事件,使用callback方式作為異步方法。

說明: 可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統能力 :SystemCapability.Communication.NetStack

參數:

參數名類型必填說明
typestring'error':WebSocket的Error事件。
callbackErrorCallback回調函數。

示例:

let ws = webSocket.createWebSocket();
ws.off('error');

WebSocketRequestOptions

建立WebSocket連接時,可選參數的類型和說明。

系統能力 :以下各項對應的系統能力均為SystemCapability.Communication.NetStack。

參數名類型必填說明
headerObject建立WebSocket連接可選參數,代表建立連接時攜帶的HTTP頭信息。參數內容自定義,也可以不指定。

WebSocketCloseOptions

關閉WebSocket連接時,可選參數的類型和說明。

系統能力 :以下各項對應的系統能力均為SystemCapability.Communication.NetStack。

參數名類型必填說明
codenumber錯誤碼,關閉WebSocket連接時的可選參數,可根據實際情況來填。默認值為1000。
reasonstring原因值,關閉WebSocket連接時的可選參數,可根據實際情況來填。默認值為空字符串("")。

close錯誤碼說明

發送給服務端的錯誤碼可以自行定義,下面的列表僅供參考。

系統能力 :以下各項對應的系統能力均為SystemCapability.Communication.NetStack。

說明
1000正常關閉
1001服務器主動關閉
1002協議錯誤
1003無法處理的數據類型
1004~1015保留值

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8944

    瀏覽量

    153208
  • 網絡管理
    +關注

    關注

    0

    文章

    123

    瀏覽量

    28045
  • WebSocket
    +關注

    關注

    0

    文章

    30

    瀏覽量

    4023
  • 鴻蒙
    +關注

    關注

    59

    文章

    2525

    瀏覽量

    43778
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    AWTK-WEB 快速入門(6) - JS WebSocket 應用程序

    WebSocket可以實現雙向通信,適合實時通信場景。本文介紹一下使用Javacript語言開發AWTK-WEB應用程序,并用WebSocket與服務器通訊。用AWTKDesigner新建一個應用程
    的頭像 發表于 02-26 11:42 ?303次閱讀
    AWTK-WEB 快速入門(6) - JS <b class='flag-5'>WebSocket</b> 應用程序

    AWTK-WEB 快速入門(5) - C 語言 WebSocket 應用程序

    導讀WebSocket可以實現雙向通信,適合實時通信場景。本文介紹一下使用C語言開發AWTK-WEB應用程序,并用WebSocket與服務器通訊。用AWTKDesigner新建一個應用程序先安裝
    的頭像 發表于 02-19 11:49 ?387次閱讀
    AWTK-WEB 快速入門(5) - C 語言 <b class='flag-5'>WebSocket</b> 應用程序

    socket 和 WebSocket 的區別

    在現代網絡通信中,Socket和WebSocket是兩種常見的通信協議。它們在實現網絡通信、數據傳輸等方面發揮著重要作用。然而,它們之間存在一些關鍵的區別。 1. Socket(套接字) 1.1
    的頭像 發表于 11-12 14:33 ?1300次閱讀

    socket與WebSocket的區別與聯系

    ) : Socket是一種通信端點,它在網絡編程中用于實現不同主機之間的通信。Socket可以是TCP套接字或UDP套接字,分別對應于TCP(傳輸控制協議)和UDP(用戶數據報協議)。 TCP套接字提供了可靠的、面向連接的通信服務,而UDP套接字則提供了不可靠的、無
    的頭像 發表于 11-04 09:19 ?1103次閱讀

    不可錯過的Air780E之WebSocket應用示范!小白篇

    咋們今天說的Air780E之WebSocket應用示范針對小白絕對是不可以錯過的示例。
    的頭像 發表于 11-03 20:16 ?1264次閱讀
    不可錯過的Air780E之<b class='flag-5'>WebSocket</b>應用示范!小白篇

    ESP8266_RTOS_SDK 1.4.0中的“websocket_demo”不起作用是怎么回事?

    新的SDK用戶在這里。我剛剛嘗試了昨天發布的 ESP8266_RTOS_SDK 1.4.0 中包含的示例“websocket_demo”。我唯一更改的是 websocket.c 中的 wifi 憑據
    發表于 07-18 07:05

    websocket.c RTOS演示中缺少對wifi_connect()的調用怎么辦?

    在 RTOS SDK 1.3 中,有一個名為 /examples/websocket_demo/websocket/websocket.c 的示例。在函數中有一個名為 websocket
    發表于 07-18 06:37

    無法與nopoll_conn_new()建立連接是怎么回事?

    你好 有人測試了 nopoll lib。我無法與 nopoll_conn_new() 建立連接 - 每次我都收到錯誤。 例如 conn = nopoll_conn_new(ctx, \"
    發表于 07-12 06:30

    esp32c3-min-1使用at指令來連接阿里云失敗了怎么處理?

    我使用官方給的esp32c3固件燒錄,我自己使用的是esp32c3-min-1,先用at指令來連接WiFi,然后用at指令來設置服務器的信息:AT+MQTTUSERCFG=0,7,\"
    發表于 06-27 07:42

    請問websocket庫怎么讀取服務器發來的數據?

    官方websocket庫怎么讀取服務器發來的數據?
    發表于 06-25 06:40

    鴻蒙開發網絡管理ohos.net.socket之Socket連接

    綁定IP地址和端口,端口可以指定或由系統隨機分配。使用Promise方式作為異步方法。
    的頭像 發表于 06-19 09:26 ?723次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發網絡</b><b class='flag-5'>管理</b>:<b class='flag-5'>ohos.net</b>.socket之Socket<b class='flag-5'>連接</b>

    鴻蒙開發網絡管理: @ohos.net.http 數據請求

    每一個httpRequest對應一個http請求任務,不可復用
    的頭像 發表于 06-18 15:42 ?1330次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發網絡</b><b class='flag-5'>管理</b>: @<b class='flag-5'>ohos.net</b>.http  數據請求

    鴻蒙開發網絡管理ohos.net.connection之網絡連接管理

    以下各項對應的系統能力均為SystemCapability.Communication.NetManager.Core。
    的頭像 發表于 06-18 09:20 ?1266次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發網絡</b><b class='flag-5'>管理</b>:<b class='flag-5'>ohos.net</b>.connection之<b class='flag-5'>網絡連接管理</b>

    如何移植libwebsockets

    libwebsockets是一個高性能的開源C語言庫,專為實現WebSocket協議及相關的HTTP協議而設計。它不僅使開發者能夠在客戶端與服務器端輕松構建WebSocket連接,還可
    的頭像 發表于 06-17 13:53 ?2931次閱讀
    如何移植libwebsockets

    ESP32進行websocket通信接收數據出錯的原因?

    開發,支持一對一私聊和一對多公聊 W (104983) WEBSOCKET: Total payload length=277, data_len=277, current payload offset
    發表于 06-14 07:42