鸿蒙技术之WebSocket连接详解

WebSocket连接详解

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

1. 创建WebSocket对象

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

import { webSocket } from '@kit.NetworkKit';
import { BusinessError } from '@kit.BasicServicesKit';

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连接的主要操作,包括连接的建立、数据的发送与接收、事件的处理以及连接的关闭。通过这些步骤,可以实现与服务器之间的双向通信。


  • 27
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿蒙开发助手

赏钱一扔,代码超神,事业飞腾

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值