写点什么

鸿蒙技术之 WebSocket 连接详解

作者:彭康佳
  • 2024-06-28
    广东
  • 本文字数:1025 字

    阅读完需:约 3 分钟

WebSocket 连接详解

WebSocket 是一种在单个 TCP 连接上提供全双工通信信道的协议,它允许服务器主动向客户端推送数据,非常适合实时通信和数据交换频繁的应用场景。以下是 WebSocket 连接的详细步骤和知识点:

1. 创建 WebSocket 对象

首先,需要通过createWebSocket()方法创建一个 WebSocket 对象。


let ws = webSocket.createWebSocket();
复制代码

2. 连接到服务器

使用connect()方法连接到服务器。连接方式可以是直接连接,也可以通过设置请求头、代理等选项进行连接。


ws.connect(url, (err: BusinessError, value: boolean) => {  if (!err) {    console.log("connect success");  } else {    console.log("connect fail, err:" + JSON.stringify(err));  }});
复制代码

3. 处理 WebSocket 事件

WebSocket 对象提供了多个事件处理方法,包括:


  • on('open'): 当 WebSocket 连接成功打开时触发。

  • on('message'): 当接收到服务器发送的消息时触发。

  • on('close'): 当 WebSocket 连接关闭时触发。

  • on('error'): 当发生错误时触发。


示例代码如下:


ws.on('open', (err: BusinessError, value: Object) => {  console.log("WebSocket is open now");});
ws.on('message', (err: BusinessError, value: string | ArrayBuffer) => { console.log("Received message: " + value);});
ws.on('close', (err: BusinessError, value: webSocket.CloseResult) => { console.log("WebSocket is closed, code: " + value.code + ", reason: " + value.reason);});
ws.on('error', (err: BusinessError) => { console.log("Error occurred: " + JSON.stringify(err));});
复制代码

4. 发送数据

使用send()方法向服务器发送数据。


ws.send("Hello, server!", (err: BusinessError, value: boolean) => {  if (!err) {    console.log("Message sent successfully");  } else {    console.log("Failed to send message, error: " + JSON.stringify(err));  }});
复制代码

5. 关闭 WebSocket 连接

使用close()方法关闭 WebSocket 连接。可以设置关闭时的错误码和原因。


ws.close((err: BusinessError, value: boolean) => {  if (!err) {    console.log("WebSocket closed successfully");  } else {    console.log("Failed to close WebSocket, error: " + JSON.stringify(err));  }});```
以上步骤和知识点涵盖了WebSocket连接的主要操作,包括连接的建立、数据的发送与接收、事件的处理以及连接的关闭。通过这些步骤,可以实现与服务器之间的双向通信。

复制代码


发布于: 22 分钟前阅读数: 6
用户头像

彭康佳

关注

还未添加个人签名 2018-12-19 加入

还未添加个人简介

评论

发布
暂无评论
鸿蒙技术之WebSocket连接详解_android_彭康佳_InfoQ写作社区