使用uniapp的vite版本進行微信小程序開發,在項目中使用mqtt連接、訂閱、發布信息

1、保證在微信公眾平臺配置socket合法域名

2、項目中使用mqtt

建議在package.json中配置"mqtt": “4.1.0”,使用這個版本的依賴
頁面中引入mqtt并配置連接

// @ts-ignoreimport * as mqtt from 'mqtt/dist/mqtt.js'; //要使用這里面的const state = reactive({client: null as any,timeCount: 0,mqttConnected: false,});// 連接mqttconst connectMqtt = () => {if(state.mqttConnected) return;const options = {connectTimeout: 4000,clientId: 'xxx',username: 'xxx',password: 'xxxx',port: 8084,};// 微信小程序中要使用wxs,不能使用wss://state.client = mqtt.connect('wxs://xxxxxx/mqtt', options);state.client.on('connect', () => {console.log('mqtt connect success');state.mqttConnected = true; });subscribe();state.client.on('error', (err:any) => {console.log('mqtt connect error', err);});state.client.on('message', (topic: any, message:any) => {console.log('mqtt receive message', topic, message);publish ();});}// 取消訂閱主題const unsubscribe = () => {state.client.unsubscribe('/xxx/xxx', (err:any) => {if (err) {console.error(err);// un.toast('訂閱失敗')} else {console.log('unsubscribe to topic');}});}// 訂閱主題const subscribe = () => {state.client.subscribe('/xxx/xxxx', (err:any) => {if (err) {console.error(err);// un.toast('訂閱失敗')} else {console.log('Subscribed to topic');}});}// 發布信息const publish = () => {if(state.client) {state.client.publish('/xx/xxx', 'Hello, MQTT!', {qos: 2}, (err:any) => {if(!err) {console.log("發布信息成功")}})return}}// 斷開mqtt連接const disconnectMqtt = () => {console.log(state.mqttConnected)if(state.mqttConnected && state.client) {unsubscribe();state.client.end(true);state.mqttConnected = false;state.client = null;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74040.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【FAQ】HarmonyOS SDK 閉源開放能力 —Map Kit(6)

1.問題描述: 使用華為內置的MapComponent, 發現顯示不出來。查看日志, MapRender底層有報錯。 解決方案: 麻煩按以下步驟檢查下地圖服務,特別是簽名證書指紋那部分。 1.一般沒有展示地圖,可能和沒有配置…

現代復古像素風品牌海報游戲排版設計裝飾英文字體 Psygen — Modern Pixel Font

Psygen 是一種像素化等寬字體,具有強烈的復古未來主義和網絡風格美學。塊狀的、基于網格的字體采用了早期的計算機界面、街機游戲排版和 ASCII 藝術。 該字體支持拉丁文、西里爾文和希臘文腳本,使其適用于多語言設計。擴展的字符集還具有唯一的符號和方…

小科普《DNS服務器》

DNS服務器詳解 1. 定義與核心作用 DNS(域名系統)服務器是互聯網的核心基礎設施,負責將人類可讀的域名(如www.example.com)轉換為機器可識別的IP地址(如192.0.2.1),從而實現設備間的…

lunar是一款無第三方依賴的公歷 python調用

lunar是一款無第三方依賴的公歷(陽歷)、農歷(陰歷、老黃歷)、佛歷和道歷工具,支持星座、儒略日、干支、生肖、節氣、節日、彭祖百忌、吉神(喜神/福神/財神/陽貴神/陰貴神)方位、胎神方位、沖煞、納音、星宿、八字、五行、十神、建除十二值星、青龍名堂等十二神、黃道…

力扣hot100——三數之和(雙指針)

題目:三數之和 排序 雙指針 本題的難點在于如何去除重復解。 算法流程: 1、特判,對于數組長度 n,如果數組為 null 或者數組長度小于 3,返回 []。 2、對數組進行排序。 3、遍歷排序后數組: &#xff08…

操作系統為ubantu的服務器上部署nginx軟件基礎步驟總結

今天在這里,我們總結一下ubantu的服務器上部署nginx軟件,請按照以下步驟進行安裝: 1、更新包列表: 首先更新你系統中的可用軟件包列表,以確保你可以安裝最新版本。 sudo apt update2、 Ubuntu上更新已安裝軟件包&…

記錄一次,rabbitmq開啟stomp插件之后,還是連不上15674端口的問題

原因是裝在docker 里面的rabbitmq 沒有映射15674端口,需重新刪除容器之后重新運行 docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p 15674:15674 -p 1883:1883 -p 15675:15675 rabbitmq:版本號 進入docker容器開啟插件 docker exec -it rabbitm…

MATLAB 控制系統設計與仿真 - 27

狀態空間的標準型 傳遞函數和狀態空間可以相互轉換,接下來會舉例如何有傳遞函數轉成狀態空間標準型。 對角標準型 當 G(s)可以寫成: 即: 根據上圖可知: 約當標準型 當 G(s)可以寫成: 即: 根據上圖…

1.FastAPI簡介與安裝

文章目錄 為什么選擇FastAPI?FastAPI支持的功能FastAPI的安裝第一個FastAPI應用運行應用 為什么選擇FastAPI? python web開發: Django: 適合大型復雜項目;Flask:適合靈活開發,搭建小型項目;FastAPI: 兼具開…

【MyDB】一個仿照MySQL的輪子項目系列文章匯總

迄今所有系列文章內容如下: 代碼位于xianghua-2/MYDB: 一個仿MySQL的簡易數據庫 1 項目環境配置以及整體項目結構 【MyDB】1-MyDB環境配置及項目結構-CSDN博客 2 TransactionManager事務管理模塊 【MyDB】2-TransactionManager 事務管理-CSDN博客 3 DataManage…

2025年汽車加氣站操作工考試精選題庫

汽車加氣站操作工題庫中題目及答案: 單項選擇題 1、按壓力容器的設計壓力分為( )個壓力等級。 A. 3 B. 4 C. 5 答案:B 2、緩沖罐的安裝位置在天然氣壓縮機( )。 A. 前 B. 后 C. 中間 答案&#…

【Unity Bug 隨記】使用Rider debug功能時Unity Reload Domain卡死問題

使用Rider debug功能時Unity Reload Domain卡死 檢查是否使用unity version control版本控制系統(VCS),使用的話刪除這個包,再嘗試,如果能正常斷點調試,說明確實是VCS的問題。 我和幾個網友都是這個原因…

麒麟銀河V10服務器RabbitMQ安裝

安裝步驟 rabbitMQ依賴于erlang的環境,所以需要先安裝erlang,erlang跟rabbitMQ是有版本之間的關聯關系的,根據對應的版本去安裝下載,保證少出問題。 可以通過官網來查看RabbitMQ和erlang之間的版本對應關系 rabbitMQ和erlang之間…

springboot操作redis集群,注意事項

整合redis可查看博文 springboot 整合redis_springboot整合redis csdn-CSDN博客 集群中操作注意事項 1 多鍵操作失敗: 當使用multiGet等需要同時訪問多個鍵的方法時,如果沒有使用Hash Tags,這些鍵可能會被分配到不同的槽中。如果這些槽位于…

優選算法訓練篇07--力扣LCR179.查找總價格為目標值的兩個商品

目錄 1.題目鏈接:LCR179.查找總價格為目標值的兩個商品 2.題目描述: 3.解法一(暴力解法,會超時): 4.解法二(雙指針-對撞指針): 1.題目鏈接:LCR179.查找總價格為目標值的兩個商品 2.題目描述: 購物車…

KMP-子串匹配算法-關鍵點理解

1.理解next[]數組的使用與來歷 2.求解next[]數組 一、kmp算法的原理 首先觀察暴力解法:假設主串為:abdxxabc,模式串為abxxabd。 暴力解法,就是對主串每個字符作為第一個字符,開始和模式串比較。 比如:從…

Flutter 學習之旅 之 flutter 使用 SQLite(sqflite) 實現簡單的數據本地化 保存/獲取/移除/判斷是否存在 的簡單封裝

Flutter 學習之旅 之 flutter 使用 SQLite(sqflite) 實現簡單的數據本地化 保存/獲取/移除/判斷是否存在 的簡單封裝 目錄 Flutter 學習之旅 之 flutter 使用 SQLite(sqflite) 實現簡單的數據本地化 保存/獲取/移除/判斷是否存在…

群體智能優化算法-粒子群優化算法(Particle Swarm Optimization, PSO,含Matlab源代碼)

摘要(Abstract) 粒子群優化(PSO)是一種基于群體智能的優化算法,受鳥群覓食行為的啟發。PSO 通過模擬粒子(個體)在搜索空間中的運動來尋找最優解。每個粒子根據自身的歷史最優位置(p…

Redis 在windows下的下載安裝與配置

參考鏈接:https://developer.aliyun.com/article/1395346 下載 Redis 訪問 Redis 下載地址:https://github.com/tporadowski/redis/releases 下載 Redis 時,你可以選擇 ZIP 包或 MSI 安裝: ZIP包:需要手動解壓、初始化、配置和…

UE5材質法線強度控制節點FlattenNormal

連法 FlattenNormal內部是這樣的 FlattenNormal的作用是用來調整法線強度 連上FlattenNormal后 拉高數值