华为手表开发:WATCH 3 Pro(13)websocket 请求数据到服务器

华为手表开发:WATCH 3 Pro(13)websocket 请求数据到服务器

  • 环境与设备
      • 文件夹:
      • 文件
  • 重点
      • 核心代码:app.js
      • 新增一个文本输入框
        • index.hml
        • index.css
        • index.js

希望能写一些简单的教程和案例分享给需要的人

鸿蒙可穿戴开发

环境与设备

系统:window
设备:HUAWEI WATCH 3 Pro
开发工具:DevEco Studio 3.0.0.800

鸿蒙开发

文件夹:

entry:项目文件夹
js:前端文件夹
pages:页面文件夹
index:首页文件夹

文件

index.css:首页样式
index.hml:首页
index.js:首页脚本
config.json:配置文件
app.js:启动ws的脚本文件

重点

网络通讯,需要网络权限和一个开关,这个必须注意:都在 config.json 增加

网络的开关,网络的权限

开关的代码:

    "default": {"network": {"cleartextTraffic": true}}

权限的代码:

    "reqPermissions": [{"reason": "流量网络请求","name": "ohos.permission.GET_NETWORK_INFO"},{"reason": "流量网络请求","name": "ohos.permission.INTERNET"},{"reason": "流量网络请求","name": "ohos.permission.SET_NETWORK_INFO"},{"reason": "WLAN网络请求","name": "ohos.permission.MANAGE_WIFI_CONNECTION"},{"reason": "WLAN网络请求","name": "ohos.permission.SET_WIFI_INFO"},{"reason": "WLAN网络请求","name": "ohos.permission.GET_WIFI_INFO"}],

++如果没加就会请求失败++ , 之前的文章也讲过,这种涉及网络的必须要加,所以一定一定要加上。

核心代码:app.js

我们优先把启动项目就会运行的脚本文件作为我们写ws逻辑的地方(ws,放置在什么地方都可以,不一定必须放置在 app.js ,我这边是为了让项目更好理解。所以放置在这边,不然可以考虑放到 apis 或者 工具类集合里)

导入功能包:ohos.net.webSocket

import webSocket from ‘@ohos.net.webSocket’;

ws://127.0.0.1:6088 : 这个是websocket 的服务端地址,记得更换到自己使用的地址

import webSocket from '@ohos.net.webSocket';export default {data: {ws: ""},onCreate() {console.info('dao::' + 'AceApplication onCreate');this.createSocket();console.info('dao::' + 'socket onCreate');},onDestroy() {console.info('dao::' + 'AceApplication onDestroy');},sendMsg(msg) {this.ws.send(msg, (err, value) => {if (!err) {console.info('dao::' + "发送成功");// 重发机制} else {console.info('dao::' + "发送失败, err:" + JSON.stringify(err));if (true) {console.info('dao::' + "重发机制, 触发");this.createSocket();this.ws.send(msg, (err, value) => {if (!err) {console.info('dao::' + "重发机制, 发送成功");} else {console.info('dao::' + "重发机制, 发送失败, err:" + JSON.stringify(err));}});}}});},createSocket() {var defaultIpAddress = "ws://127.0.0.1:6088";let ws = webSocket.createWebSocket();this.ws = wsws.on('open', (err, value) => {console.info('dao::' + "on open, status:" + value['status'] + ", message:" + value['message']);// 当收到on('open')事件时,可以通过send()方法与服务器进行通信ws.send("你好,我是手表设备", (err, value) => {if (!err) {console.info('dao::' + "发送成功");} else {console.info('dao::' + "发送失败, err:" + JSON.stringify(err));}});});ws.on('message', (err, value) => {console.info('dao::' + "服务端_回答:" + value);// 当收到服务器的`bye`消息时(此消息字段仅为示意,具体字段需要与服务器协商),主动断开连接if (value === 'bye') {ws.close((err, value) => {if (!err) {console.info('dao::' + "关闭成功");} else {console.info('dao::' + "关闭失败, err is " + JSON.stringify(err));}});}});ws.on('close', (err, value) => {console.info('dao::' + "被主动断开, code is " + value.code + ", reason is " + value.reason);});ws.on('error', (err) => {console.info('dao::' + "错误, error:" + JSON.stringify(err));});ws.connect(defaultIpAddress, (err, value) => {if (!err) {console.info('dao::' + "连接成功");} else {console.info('dao::' + "连接失败, err:" + JSON.stringify(err));}});}
};

新增一个文本输入框

代码如下:

index.hml

<div class="container"><div class="input-item"><div class="color"><label class="input-title">消息 :</label><input class="input"  value="{{sendMessage}}" type="text" placeholder="请输入消息"  onchange="changeSendMessage"></input></div></div><input class="btn" type="button" value="发送" onclick="onSend"></input>
</div>

index.css

.container {height: 100%;width: 100%;flex-direction: column;padding: 0 0 5% 0;justify-content: center;align-items: center;
}.color {margin: 0 4% 0 4% ;width: 92%;border-bottom: 1px solid rgba(0,0,0,0.1);
}
.input-item {width: 100%;margin-bottom: 10px;
}
.input-title {width: 60px;color: #fff;font-family: HarmonyHeiTi;font-size: 12px;text-align: right;
}
.input {width: 65%;height: 36px;padding: 0% 10px;font-size: 14px;border-radius: 8px;background-color: #fff;color: black;
}
.btn{display: flex;width: 100px;font-size: 14px;height: 36px;
}

index.js

export default {data: {sendMessage: ""},onInit() {},changeSendMessage(e) {this.sendMessage = e.value;},onSend() {this.$app.$def.sendMsg(this.sendMessage);}
}

弄完上面的代码,就是手表端的全部了,如果要测试连接,还差一个服务端,可以看java专区的文章:Java WebSocket Demo ,案例手把手教学 记录(11)

ps: 搜索博主文章关键词:Java WebSocket Demo。

需要 demo(代码) 的留下邮箱,或者留言提需要什么样的 demo

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

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

相关文章

华为手表微信排行榜服务器繁忙,华为watch3微信消息-华为watch3可以回微信消息吗...

华为watch3是首款搭载了鸿蒙系统的智能手表&#xff0c;带给用户更加多的功能体验&#xff0c;智能享受!那么这款华为watch3关于微信消息的功能大家都清楚吗!今天小编就为大家介绍这款华为watch3的微信消息回复功能!帮助大家看看这款华为watch3有没有微信回复功能!好奇的用户一…

华为正式出售荣耀;圆通回应内鬼致 40 万条个人信息泄露;Spring Boot 2.3.6 发布|极客头条...

整理 | 郑丽媛 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧&#xff0c;智能播报由出门问问「魔音工坊」提供技术支持。 「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我…

戴森

著名数学家弗里曼戴森的演讲译文&#xff1a;鸟和青蛙 编辑按&#xff1a; 弗里曼•戴森 &#xff08;Freeman Dyson&#xff09;1923年12月15日出生&#xff0c;美籍英裔数学物理学家&#xff0c;普林斯顿高等研究院自然科学学院荣誉退休教授。 戴森早年在剑桥大学追随著名的数…

链表(上)

链表&#xff08;上&#xff09; (数据结构与算法) 链表的经典应用场景&#xff1a; LRU 缓存淘汰算法。 缓存是一种提高数据读取性能的计数&#xff0c;如常见的&#xff1a;CPU 缓存&#xff0c;数据库缓存&#xff0c;浏览器缓存等。 缓存的大小有限&#xff0c;当缓存被用满…

ogc是一个非营利性组织_非营利组织的21个最佳WordPress主题

ogc是一个非营利性组织 Are you looking for the best WordPress themes for nonprofits? 您是否在寻找非营利组织的最佳WordPress主题&#xff1f; Charity and nonprofit websites require an appealing presentation with the right tools to achieve their donation goal…

橡皮擦的英语_小朋友们知道“橡皮擦”用英语该怎么说吗?

点击上面“蓝字”关注我们&#xff01; 小朋友们知道橡皮擦用英语该怎么说吗&#xff1f; 和老师一起学起来吧~ eraser 英 [ɪˈreɪzə(r)] 美 [ɪˈreɪsər] n.橡皮擦;黑板擦 复数&#xff1a;erasers 小朋友们都知道橡皮擦是我们常用的文具&#xff0c; 那小朋友们还知道哪…

测试用例方法-等价类划分

一、等价类划分 例&#xff1a;测试一个两位数的加法计算器 测试需求&#xff1a;测试两个参数值的相加后的结果是否正确 隐身需求&#xff1a;输入的数值在-99到99之间&#xff0c;大于99或小于-99输入应被拒绝&#xff0c;并显示错误信息 第一步&#xff1a;根据测试需求&am…

网易云数据分析实战

网易云数据分析 字段&#xff1a;title,tag,text,collection,play,songs,comments 导入模块&#xff0c;读取数据 import pandas as pd import numpy as np import matplotlib.pyplot as plt import squarifydf pd.read_excel(D:/Pandas/music_message.xlsx,header0,names[…

最近抖音上虚拟元宇宙项目-猜歌名,代码解析

介绍一下最近抖音上元宇宙虚拟项目猜歌名&#xff0c;直播游戏。用户互动猜歌名&#xff0c;30秒后自动切歌。 CSDN项目源码&#xff1a;https://download.csdn.net/download/u010978757/85326344 类似的弹幕互动游戏除了猜歌名&#xff0c;还有挤地铁、广场舞和舞厅蹦迪的&a…

德清租房软件测试,门头沟实习生出租房

10 图 2室 65㎡ 苏州街 海淀南路小区 距4号线大兴线海淀黄庄地铁站步行438m 来自经纪人: 陈伟建 1天前 8300元 8 图 1室 35㎡ 北太平庄 花园路8号院 距10号线牡丹园地铁站步行1122m 来自经纪人: 陈泽科 1天前 4800元 10 图 1室 45㎡ 西北旺 芳怡园 距16号线西北旺地…

训练数据集操作方法总结

参考博客 移动九天毕昇&#xff1a;https://blog.csdn.net/weixin_45887062/article/details/126796359 肆十二&#xff1a;&#xff08;B站有详细解说&#xff09;https://blog.csdn.net/ECHOSON/article/details/121939535?ops_request_misc%257B%2522request%255Fid%2522%2…

chatgpt赋能python:Python多种输出格式详解

Python多种输出格式详解 对于Python程序员来说&#xff0c;输出是非常重要的。无论是在开发阶段还是在生产环境中&#xff0c;输出都是我们调试程序和确认程序运行是否正常的重要手段。Python标准库提供了丰富的输出格式&#xff0c;本文介绍了几种常见的输出格式及其使用方法…

Vue3实现chatgpt的流式输出

前言&#xff1a; 我在使用Vue3开发一个chatgpt工具类网站的时候&#xff0c;翻阅了不少博客和github上的一些相关项目&#xff0c;都没能找到适合Vue3去实现stream的流式数据处理。经过踩坑&#xff0c;最终实现了适用直接调chatgpt接口的方法以及改为调用Python后端接口的方…

ChatGPT基础知识系列之大型语言模型(LLM)初识

ChatGPT基础知识系列之大型语言模型(LLM)初识 ChatGPT本质是一个对话模型,它可以回答日常问题、挑战不正确的前提,甚至会拒绝不适当的请求,在去除偏见和安全性上不同于以往的语言模型。ChatGPT从闲聊、回答日常问题,到文本改写、诗歌小说生成、视频脚本生成,以及编写和调…

特朗普、马斯克和比尔·盖茨贫民窟AI画“让人尖叫”

点击上方“AI遇见机器学习”&#xff0c;选择“星标”公众号 重磅干货&#xff0c;第一时间送 深度学习与NLP编辑 一组名为“贫民窟的亿万富豪”的人工智能&#xff08;AI&#xff09;画作在网上发布后&#xff0c;引起了全球关注。这组画作的作者是印度数字艺术家戈库尔皮莱&a…

华为开发者大会2023官宣,华为云在憋什么大招?

文丨智能相对论 作者丨沈浪 华为云也坐不住了。 在此之前&#xff0c;百度、阿里、商汤、科大讯飞等国内科技厂商以及微软、谷歌等国际巨头都已经发布了自家的大模型新品以及AIGC等相关应用。而华为云手握盘古大模型&#xff0c;却始终按兵不动&#xff0c;迟迟没有正式进场…

又一家顶级的大模型开源商用了!Meta(Facebook)的 Llama 2 搅动大模型混战的格局...

“ 百模大战&#xff0c;花落谁家&#xff1f;” 01 — 开源、免费‍ 今年2月24日&#xff0c;Meta推出大语言模型Llama&#xff08;羊驼&#xff09;&#xff0c;按参数量分为7B、13B、33B和65B四个版本。它凭借一己之力&#xff0c;引导了开源大模型的发展&#xff0c;由其演…

深度测评全新大模型「天工」,这些AI体验太香了

ChatGPT火了后&#xff0c;很多人都在关注“国产ChatGPT”的名号究竟花落谁家。 事实上&#xff0c;名号不重要&#xff0c;体验才是王道。ChatGPT能够火成“史上增长最快的消费者应用”&#xff0c;关键在于把体验提升到了新层次。毕竟对于用户来说&#xff0c;并不清楚产品背…

BLEXBot是什么蜘蛛,需要屏蔽这个爬虫吗

BLEXBot这个蜘蛛也是最近爬的比较厉害的一个&#xff0c;属于一家美国的反向链接查询网站&#xff08;WebMeUp&#xff09;的蜘蛛程序&#xff0c;它会大量的抓取我们的网站链接&#xff0c;所以一旦我们发现有他的抓取的踪迹&#xff0c;就会发现他真的是大量的抓取你的链接。…

孔乙己终结者!GPT-4拿100美元自创业,还要让马斯克下岗

【导读】GPT-4引发的新一波革命&#xff0c;把打工人推上了「断头台」。孔乙己的未来在哪里&#xff1f; GPT-4才诞生4天&#xff0c;人类就要失业了&#xff01; 不仅要取代马斯克&#xff0c;还当上了大Boss&#xff0c;「孔乙己」的未来该怎么办&#xff1f; 就连Sam Altman…