当前位置: 首页 > news >正文

<uniapp><websocket><http>基于uniapp,手机客户端通过websocket进行数据通讯(二维码扫码数据)

前言

本专栏是基于uniapp实现手机端各种小功能的程序,并且基于各种通讯协议如http、websocekt等,实现手机端作为客户端(或者是手持机、PDA等),与服务端进行数据通讯的实例开发。

发文平台

CSDN

环境配置

系统:windows
平台:visual studio code、HBuilderX(uniapp开发)
语言:javascript、html、vue
库:websocket、http

概述

本文是利用uniapp开发一个手机端的程序,用于实现websocket数据通讯,手机端利用uniapp实现,利用手机摄像头进行二维码扫描,获取二维码数据,通过websocket上传给服务器,服务端利用nodejs实现。

1、uniapp手机客户端实现

uniapp的开发工具是HBuilderX软件,可以在其官网下载:
https://hx.dcloud.net.cn/Tutorial/install/windows
下载完成后,按照其官网指示完成安装,然后打开HBuilderX,新建一个项目,我们可以命名为MyWebApp:
在这里插入图片描述
然后点击“创建”,软件将自动生成项目文件,其初始结构如下:
在这里插入图片描述
uniapp的开发框架是基于vue的,所以,如果你熟悉vue,那么使用uniapp开发是非常简单的。
我们可以先运行一下上面的初始代码:
在这里插入图片描述
HBuilderX软件内置预览功能,可以选择“PC端”或者是“移动端”来进行UI预览。
上面的预览,就是很简单的初始界面。我们需要对代码进行修改,也就是修改index.vue这个文件,我们的功能需求是实现websocket通讯,以及二维码扫描,那么我们的页面元素如下:
1、连接websocket服务器、断开
2、二维码扫描按钮、数据发送
下面是修改后的index.vue

<template><view class="content"><view class="head-area"><text class="title">{{title}}</text></view><view class="main-area1"><view class="btns-row"><button @click="getserver">获取</button><button @click="connect">连接</button><button @click="disconnect" :disabled="btn_disconn">断开</button></view><view><ul><text class="title">服务器列表:</text><ul><label>{{servertitle}}</label><a :class="status">{{serverips}}</a></ul></ul></view></view><view class="main-area2"><view class="btns-row"><button @click="startscan">扫描</button><button class="btn-spe" @click="send">发送</button><button class="btn-spe" @click="cleardata">清空</button></view><view class="qrcodedata"><text>扫描数据:</text><text>{{qrcodedata}}</text></view><view class="senddata"><text>发送数据:</text><text>{{senddata}}</text></view><view class="recvdata"><text>接收数据:</text><text>{{recvdata}}</text></view></view><view class="foot-area"><button @click="exitapp">退出程序</button></view></view>
</template><script>export default {data() {return {title: 'Home',serverIP:'',serverPort:'',serverips:'',servertitle:'',socketTask:null,status:'disconnect',qrcodedata:'',btn_disconn:true,senddata:'',recvdata:'',}},onLoad() {},methods: {getserver(){//判断平台,如果不支持fetch,则使用uni的request发送请求const platform = process.env.VUE_APP_PLATFORM;if ( platform == 'h5'){const res = fetch('http://192.168.1.150:3000/serverip').then((response)=>{if(!response){console.log('error')}return response.json()}).then(data=>{console.log(data)const dt_json = JSON.parse(data.serverip

相关文章:

  • 【Axure视频教程】标准金额格式转换
  • ArrayList 与顺序表:Java 线性表深度解析
  • 【JAVAFX】自定义FXML 文件存放的位置以及使用
  • 第三天 组件系统
  • OpenAI发布GPT-4.1系列模型,近屿智能助力AI人才成长#OpenAI
  • Elasticsearch:AI 助理 - 从通才到专才
  • PDF处理控件Aspose.PDF指南:使用 C# 从 PDF 文档中删除页面
  • 接口测试之postman使用指南
  • MCP技术革命:元控制协议如何重构AI与数据库的交互范式
  • 关于响应式编程框架ReactiveUI的感悟
  • 【Netty篇】Netty的线程模型
  • 【北交互联-注册/登录安全分析报告】
  • 【Qt】Qt 信号与槽机制全解析
  • [react 18+] 定义页面组件时的三种申明区分
  • 定义AIDL 接口
  • 前端 React 弹窗式 滑动验证码实现
  • 【教程】PyTorch多机多卡分布式训练的参数说明 | 附通用启动脚本
  • 网盘文件下载功能需求分析与技术方案选择:全面解析与最佳实践
  • windows修改远程端口
  • OCP中的OCS operator介绍及应用示例
  • 经营业绩持续稳中向好,国铁集团2024年度和2025年一季度财务决算公布
  • 人物|德国新外长关键词:总理忠实盟友、外交防务专家、大西洋主义者
  • 十四届全国人大常委会第十五次会议在京闭幕
  • 国台办:“台独”是绝路,外人靠不住
  • 青海西宁市城西区副区长于媛媛主动投案,接受审查调查
  • 交通运输部:预计今年五一假期全社会跨区域人员流动量将再创新高