【鸿蒙南向实战开发】OpenHarmony-WebSocket连接

前言

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,于 2011 年被 IETF 定为标准 RFC 6455,并由 RFC7936 补充规范。WebSocket API 也被 W3C 定为标准。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。WebSocket 与 Http 相比具有更强的实时性和压缩效果、更好的二进制支持、较少的控制开销,并能够保持连接状态。

WebSocket 介绍

在 OpenHarmony 中,WebSocket 连接功能主要由 @ohos.net.webSocket 模块提供。使用该功能需要申请 ohos.permission.INTERNET 权限。

接口说明

在这里插入图片描述

使用场景介绍

要实现 WebSocket 建立服务器与客户端的双向连接,需要先通过 createWebSocket()方法创建 WebSocket 对象,然后通过 connect()方法连接到服务器。当连接成功后,客户端会收到 open 事件的回调,之后客户端就可以通过 send()方法与服务器进行通信。当服务器发信息给客户端时,客户端会收到 message 事件的回调。当客户端不要此连接时,可以通过调用 close()方法主动断开连接,之后客户端会收到 close 事件的回调。若在上述任一过程中发生错误,客户端会收到 error 事件的回调。

开发步骤

●导入 @ohos.net.webSocket 模块
●创建 WebSocket 对象
●(可选)订阅 WebSocket 的打开、消息接收、关闭、Error 事件
●根据 URL 地址,发起 WebSocket 连接,与服务器进行通信
●使用完 WebSocket 连接之后,主动断开连接

WebSocket 连接示例

目标

使用 webSocket 模块相关接口与服务器进行双向通信

开发环境

示例开发环境:

1.IDE: DevEco Studio 3.0 Release(build:3.0.0.993)
2.SDK: Api Version9
3.开发模型:Stage

具体实现

创建工程

打开 DevEco Studio,创建 SDK 版本为 API9、模型为 Stage 的 OpenHarmony 项目。工程目录结构如下:
在这里插入图片描述

配置权限

在工程中的 module.json5 文件中配置 ohos.permission.INTERNET 权限。

  "abilities": [
      {
        ...
        ...
      }
    ],
 "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]

包装 WebSocket 接口

在 ets/service 目录下创建 SocketService.ets 文件。为了方便在 UI 页面中调用 WebSocket 相关的功能,在该文件中定义 SocketService 类对 WebSocket 相关接口进行包装。

SocketService.ets:

import webSocket from '@ohos.net.webSocket';
import Logger from '../util/logger'

const TAG = "WebSocketDemo"

export class SocketService {
  private socket: webSocket.WebSocket ;
  private messageCallback: MessageCallback;

  constructor() {
    this.createWebSocket();
    this.onOpen();
    this.onMessage();
    this.onCl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值