HarmonyOS实战开发-WebSocket的使用。

介绍

本示例展示了WebSocket的使用,包括客户端与服务端的连接和断开以及客户端数据的接收和发送。

WebSocket连接:使用WebSocket建立服务器与客户端的双向连接,需要先通过createWebSocket方法创建WebSocket对象,然后通过connect方法连接到服务器。 当连接成功后,客户端会收到open事件的回调,之后客户端就可以通过send方法与服务器进行通信。 当服务器发信息给客户端时,客户端会收到message事件的回调。 当客户端不要此连接时,可以通过调用close方法主动断开连接,之后客户端会收到close事件的回调。

效果预览

在这里插入图片描述
使用方法:

1.输入服务器IP地址,点击绑定服务器IP地址按钮,即可绑定该IP并退出弹框,如果要解绑IP,重启应用即可。

2.点击顶部栏的连接按钮,按钮颜色从灰色变为绿色,即可与服务器建立WebSocket连接,并开始监听服务器发来的消息。

3.在底部消息输入框输入消息,点击发送按钮,即可收到来自服务端的消息回馈。

4.再次点击顶部栏的连接按钮,按钮颜色从绿色重新变成灰色,即可与服务器断开连接,接收不到服务器发来的消息。

5.重新连接需要退出应用重新绑定ip,再次点击连接才可以发送接收消息。

工程目录

entry/src/main/ets/
|---Application
|   |---AbilityStage.ts
|---common
|   |---BindServiceIp.ets                    // 绑定服务器IP地址
|   |---ChatsPage.ets                        // 聊天框
|   |---SendMessage.ets                      // 发送信息
|   |---TopBar.ets                           // 顶部栏
|---MainAbility
|   |---MainAbility.ts
|---model
|   |---ChatData.ets                          // 数据类型
|   |---DataSource.ets                        // 源数据
|   |---Logger.ts                             // 日志工具
|---pages
|   |---Chats.ets                             // 首页

具体实现

  • 本示例分为两大模块
  • 客户端与服务端的连接和断开模块
  • BindServiceIP方法输入服务器IP地址,socket.connect方法绑定服务器,进入消息框页面,socket.on方法连接服务器,socket.off方法断开连接
  • 客户端数据的接收和发送模块
  • TopBar组件搭建通讯页面,socket.send方法发送信息数据。

相关权限

ohos.permission.INTERNET

依赖

依赖于WebSocketServer服务器才能实现相关功能。

约束与限制

1.本示例仅支持在标准系统上运行。

2.本项目仅包含客户端,不包含服务端,当前服务端回复客服端为固定消息。

3.本示例仅支持API9版本SDK,版本号:3.2.11.9 及以上。

4.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400 构建 2023年4月7日)及以上才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code\BasicFeature\Connectivity\WebSocket > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程

在这里插入图片描述
在这里插入图片描述

鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128

在这里插入图片描述

鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

一、入门必看

1.应用开发导读(ArkTS)
2………
在这里插入图片描述

二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…

在这里插入图片描述

三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.构建第一个ArkTS应用
3…

在这里插入图片描述

四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
在这里插入图片描述

五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
在这里插入图片描述

更多了解更多鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS实战开发-证书管理、如何实现对签名数据进行校验功能。

介绍 本示例使用了ohos.security.certManager相关接口实现了对签名数据进行校验的功能。 实现场景如下: 1)使用正确的原始数据和签名数据进行签名校验场景:模拟服务端对签名数据进行校验,验证客户端身份和原始数据完整性。 2&…

多线程(46)线程局部存储

线程局部存储(Thread Local Storage, TLS)是一种允许数据在多个线程中被独立地存储的编程范式。在Java中,这通过ThreadLocal类实现,它提供了一种线程封闭的机制,确保每个线程都有自己的变量副本,从而避免了变量共享所带来的线程安…

MongoDB聚合运算符:$objectToArray

文章目录 语法使用例1,无内嵌文档的情况例2,有内嵌文档的情况 举例objectToAarray 举例使用objectToArray对内嵌字段求和 o b j e c t T o A r r a y 与 objectToArray与 objectToArray与arrayToObject一起使用的例子 $objectToArray聚合运算符用于将文档…

绝地求生:PUBG×杜卡迪联名上线!参与投稿评论赢取精美好礼

PUBG杜卡迪联名活动游戏内现已正式上线!我们诚邀与您一起在开拓未知战场和书写新历史的过程中,与杜卡迪一同实现您的极速梦想! 在本次的杜卡迪工坊中,更是包含了具备标志性红色在内的6种颜色供您自由选择,一起自由驰骋…

Redis入门到通过之Redis安装

文章目录 Redis安装说明1.单机安装Redis1.1.安装Redis依赖1.2.上传安装包并解压1.3.启动1.3.1.默认启动1.3.2.指定配置启动1.3.3.开机自启 2.Redis客户端2.1.Redis命令行客户端2.2.图形化桌面客户端2.2.1.安装2.2.2.建立连接 Redis安装说明 大多数企业都是基于Linux服务器来部…

【Python 小学低段竞赛数学题】数字5在书本页码中出现16次,这本书最多有多少页

书的页码编号是按1 2 3 4 5一直这样下去的,数字5恰好出现了16次,请问这本书最多可以有多少页? 包含5的页码: 5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65 需要注意页码55,出现了两次5。因此到59页就满足数字5出现…

力扣爆刷第117天之CodeTop100五连刷71-75

力扣爆刷第117天之CodeTop100五连刷71-75 文章目录 力扣爆刷第117天之CodeTop100五连刷71-75一、48. 旋转图像二、39. 组合总和三、113. 路径总和 II四、34. 在排序数组中查找元素的第一个和最后一个位置五、394. 字符串解码 一、48. 旋转图像 题目链接:https://le…

Swift中的布尔型

在Swift中,布尔型数据用Bool类型表示。布尔型数据只有两个可能的值:true和false。布尔型数据通常用于条件判断和逻辑运算。例如: let isTrue true let isFalse falseif isTrue {print("这是真的") } else {print("这是假的…

GPT中的Transformer架构以及Transformer 中的注意力机制

目录 1 GPT中的Transformer架构 2 transformer中的注意力机制 参考文献: 看了两个比较好的视频,简单做了下笔记。 1 GPT中的Transformer架构 GPT是Generative Pre-trained Transformer单词的缩写,其中transformer是一种特定的神经网络&a…

如何排查k8s集群中Pod内mysqld进程占用内存消耗过高?

文章目录 1. **查看容器资源使用情况**:2. **进入容器内部**:3. **检查进程内存使用**:4. **MySQL服务器状态检查**:5. **MySQL日志分析**:6. **使用专门的MySQL监控工具**:7. **配置文件检查**&#xff1a…

Java基础07--多线程-网络编程-Java高级

一、多线程 1.认识多线程 ①线程 ②多线程 2.创建线程方式 ①方式一:继承Thread类 1.让子类继承Thread线程类 2.重写run方法,就是这个线程执行会执行的操作。 3.创建继承Thread的子类对象就代表一个线程 4.启动线程:.start()-自动执行run方法 注意&am…

全量知识系统 程序详细设计之 统一资产模型(QA-SmartChat)

Q1. 下面我们聊聊整个全知系统的设计 的矩阵和函数,矩阵表示的是“活物”,分别 类似 一个基因的活性、一个实体的辨识度和某种特征的可区分度。 函数的可微、可积和可导性 则表示 运动的控制方式 在全知系统设计中,矩阵和函数是两个核心的组…

Java中的Set、List、Map的区别及主要实现类方法

Java中的Set、List、Map的区别 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引…

Linux netstat命令教程:网络统计工具(附实例详解和注意事项)

Linux netstat命令介绍 netstat(网络统计)是一个在Linux中用于显示网络相关信息并诊断各种网络问题的命令。它可以显示你的计算机正在进行的连接、发送信息的路径,甚至一些技术细节,如正在发送或接收的数据包的数量。 Linux net…

速盾:CDN是怎么防止ddos攻击的?

CDN(内容分发网络)是一种用于提高网站性能和安全性的重要技术。它通过在全球多个位置分布节点来存储和分发网站内容,以减少用户访问网站时的延迟并提高网站的可用性。除了提供高质量的内容分发,CDN还能有效地防止DDoS攻击。 DDoS…

Frida 远程RPC 调用进阶

引言: 今天讲下Frida 远程RPC 调用,为什么要用它,方便快捷。 安卓IOS 简单适用,代码量少很多,比Xposed。 1,安卓调用: 安卓调用,一般我们使用usb,模拟器的话直接用adb 命令去直连都可以,但是我这里叫一个稳定的方法,使用wifi adb ,比较靠谱,设置模拟器的ip,然…

点亮一颗 LED: 单片机 ch32v003 (RISC-V) 使用 rust 编写固件

首发日期 2024-04-09, 以下为原文内容: 使用 rust 编写单片机的程序 ? 很新, 但没问题. 使用 RISC-V CPU 的单片机 (比如 ch32v003) ? 也没问题. 同时使用 ? 哦嚯, 问题出现了 !! ch32v003 是一款使用 rv32ec 指令集的国产单片机, 很便宜 (某宝零卖只要 0.4 元一个, 在同档…

简单了解JVM

一.JVM简介 jvm及Java virtual machineJava虚拟机,它是一个虚构出来的计算机,一种规范。其实抛开这么专业的句子不说,就知道 JVM 其实就类似于一台小电脑运行在 windows 或者 linux 这些操作系统环境下即可。它直接和操作系统进行交互&#…

Handler——小白能懂的原理,老鸟需要的面经

1.机制学习 1.1Handler定义 发送并处理 与线程的消息队列关联的Message和Runnable 1.2基本用法 1、Message.obtain() 从消息池取得Message 2、Handler().sendMessage(msg) 发送消息 3、Handler().post 将Runnable包装成Message发送 以下提供一个结构代码 import android.os.H…

VMware导出虚拟机vmkd格式转换qcow2

VMware虚拟机导出qcow2格式可以上传至云服务 1、需要导出的虚拟机 2、克隆虚拟机 3、选择克隆源 4、创建完整克隆 5、完成 6、找到VMware安装路径 7、找到vmware-vdiskmanager所在路径使用cmd或Windows PowerShell进入目录 进入vmware-vdiskmanager目录 cd F:\软件\VMware Wo…