今天在做微信小程序获取蓝牙权限 ble 扫描对应的无线设备时,发现一个这样的情况,我初次启动小程序扫描蓝牙是很快能扫描到,也能很快建立连接,但是我一旦断开蓝牙,重新打开,我就发现这个扫描无线设备非常缓慢,一直处于扫描中的状态。我就不是很明白,为什么会这样。于是我上网查了一下“UniApp 开发微信小程序蓝牙通信”的问题。我就找到了一篇参考文章
参考文章:wx66ece9f42611c - UniApp 开发微信小程序蓝牙通信:从流程到避坑
看到了一个关键数据“allowDuplicatesKey”,我在代码中是设置的 false,我就在想是不是这个问题,但是我问了 GPT,它说是跟这个参数无影响,
allowDuplicatesKey: false 只是表示本次扫描中同一个设备不重复回调。 它不会导致“第一次连接过的设备以后扫描不到”。 但是我想了想,还是死马当活马医,我改一下试试看。
// 持续扫描:开启后不会自动停止,需显式 stopDiscovery() export async function startDiscovery(onDeviceFound = null, options = {}) { uni.onBluetoothDeviceFound(res => { emitScannedDevices(res.devices, onDeviceFound, options, sid); }); await startDiscovery(onDeviceFound, { allowDuplicatesKey: true, // 允许重复上报同一设备(保持信号更新) scanWithServiceFilter: false, interval: 0, restartDelayMs: 300, // 停旧扫描后等 300ms 再启 cacheRefreshDelayMs: 1200 // 启动后 1.2s 再读一次缓存 }) 我发现改成了 true 后居然解决了这个问题,我就很好奇,claude 给出的回答是这样的
Nuxt.js (day2) 的学习 #前一天刚把 Nuxt 的页面、接口和 SQLite 跑起来,今天就顺势开始折腾部署。因为这个项目本身已经具备前后端和数据库的最小闭环,所以很适合拿来练习一次完整的上线流程。
这篇主要记录我在部署 Nuxt 项目时最终采用的方案、实际踩过的坑,以及排查 Nginx、Cloudflare 和 better-sqlite3 过程中得到的一些结论。整体折腾了小半天,最后算是把从容器启动到域名访问这一整条链路搞通了。感谢 GPT,感谢我的同事哈哈!
最终我决定统一采用这套方案:
Docker 里只运行 Nuxt 宿主机 Nginx 负责对外入口 宿主机 Nginx 反向代理到 127.0.0.1:3000 一、我最终采用的部署方式 #最后确定使用的是这套部署流程:
Nuxt.js (day1) 的学习 #最近看到一个新技术就折腾一下,前面看到 qiankun,昨天刷 L 站看到了 Nuxt.js,这不就开始上手边看文档边写项目了。 目前就根据我自己起的项目来做个小总结。
1. 项目结构 #目前跟普通的 Vue 的区别就是多了一个 server,专门用于放与后端 db、api 相关的内容,其他的没太多变化。
其实在最初找工作的时候就跟一些同为前端的朋友交流过,那个时候了解到的一个概念是叫“大前端”,当时其实是有点懵的,刚毕业感觉自己什么都不会,这个概念也是第一次听到,后面了解到的就是前端不仅仅只是做web开发。还需要涉及更多领域,比如说微信小程序,APP,桌面端(Electron),甚至是 Node.js,SSR 这种。后面上班后视野逐渐更加开阔,了解到了一点点 docker 的皮毛,熟悉了 nginx等这种工程化的内容。对于这个大前端也有了一定的概念。
随着工作时间的增加,偶然看到了微前端的这个概念。这个虽然在之前也听过,可是我并没有去了解,但是今天我在空闲的时间中,依靠如今的 AI 帮我做了一个深入的了解。我让 AI 帮我搭建了一个基础的项目框架,然后我看了一下它写的代码,大概就了解了这个概念。微前端无非就是一个大容器中我可以随时放任何内容,想放哪个就放哪个,不要哪个就拿出来即可。且这些内容可以由多个不同的人来开发。彼此之间不会受到任何干扰。这大概就是我所了解到的。虽然可能看起来比较浅显。但是我想应该就是这样了。
下面我输出一些基础的代码来看看 #首先是主应用,也就是所谓的放子应用的容器,其实就是一个独立的 Vue3 项目
App.vue中的核心部分是这样的 #<template> <div> <nav style="padding:10px;background:#f0f0f0"> <a href="/sub-vue">Vue3 Sub</a> | <a href="/sub-react">React Sub</a> | <a href="/sub-vanilla">Vanilla Sub</a> </nav> <div id="subapp-container"></div> </div> </template> 因为我初识这个微前端,搭建的内容可能简单粗浅。这个地方可以看到我有三个子应用,我选择了 vue, react, 和原生的 js. 这个地方的重要点是 a 链接中的 href 和下面 div 中的 id,这些内容需要跟在主应用中注册微应用中的内容对上,记得需要在 main.js 中需要引入前端和对应用进行注册。
背景 #昨天在公司写完项目后,本来就是一个很正常的新增一个接口,然后修改 nginx,然后部署项目,但是出现了一个非常奇怪的事情。我的接口居然出现 403,报错还是 vite ???? 可是我已经部署了怎么可能还报错 vite 的问题呢????
Vite 跨域配置 #以下是我的 vue3 代码的 vite的跨域配置,其实就是端口号不一样,所以我就参考了之前写的 Botapi,nginx 也是这样写的。