说明

  我为了后期能够快速的让小程序实现MQTT,我做了一个MQTT的封装.

  功能的封装有助于后期快速的开发,还方便咱维护.

  我后期的所有代码皆使用此封装库,

  这一节,我就详细的介绍我封装的MQTT.js的使用

新建工程,拷贝文件

拷贝第一节或者第二节测试代码里面的以下三个文件到新工程

说明

连接MQTT

根据自己的MQTT服务器更改以下信息

在软件启动的地方写上连接

注:只要写上连接,内部自动断线重连

var MQTT = require("./utils/mqtt.js");

App({
onLaunch: function () { MQTT.ConnectMqtt();//链接MQTT

成功连接MQTT

测试断线重连

订阅主题

      MQTT.subscribeTopic(
"", //订阅1111
,//消息等级
function () {
console.log("订阅成功");
}, function () {
console.log("订阅失败");
}
);//订阅主题

建议

var MQTT = require("../../utils/mqtt.js");
var TimeNumber;//循环订阅设备主题定时器 //订阅设备发布的主题
try { clearInterval(TimeNumber); } catch (e) { }
TimeNumber = setInterval(function()
{ MQTT.subscribeTopic(
"", //订阅1111
,//消息等级
function () {
console.log("订阅成功");
clearInterval(TimeNumber);//订阅成功清除定时
}, function () {
console.log("订阅失败");
}
);//订阅主题 }, , "null");//启动定时器,循环订阅主题,直至订阅成功

取消订阅主题

    MQTT.unSubscribeTopic(
"", //取消订阅的主题
function()
{
console.log("取消订阅成功");
}
);

发布消息

发布字符串消息

    MQTT.publishTopic(
"", //发布的主题
"message", //发布的消息
, //消息等级
false, //不需要服务器保留
function()//发送成功回调
{
console.log("发送消息成功");
}
);

发布16进制消息

0xAA 0x88 0xFF 0xdd

    MQTT.publishStringToHex(
"", //发布的主题
"AA 88 FF dd", //发布的消息
, //消息等级
false, //不需要服务器保留
function ()//发送成功回调
{
console.log("发送消息成功");
}
);

接收消息

    MQTT.SetonMessageArrivedCallBack(
function (arg)
{
console.log(arg.destinationName + " " + arg.payloadString);
}
);//注册接收消息回调函数

注意:如果接收的数据有16进制,有字符串,需要加入try

    MQTT.SetonMessageArrivedCallBack(
function (arg) {
try{
console.log(arg.destinationName + " " + arg.payloadString);//处理字符串消息
}catch(e){
console.log(e);
} try {
console.log(arg.payloadBytes);//处理16进制消息
let byt = arg.payloadBytes;
} catch (e) {
console.log(e);
} }
);//注册接收消息回调函数

监听MQTT状态

掉线

    MQTT.SetonConnectionLostCallBack(function(arg){
console.log(arg);//打印链接失败详细信息
});//软件掉线

上线

    MQTT.SetonConnectionSuccessCallBack(function(){
console.log("连接上MQTT");
});//连接上MQTT

ESA2GJK1DH1K微信小程序篇: 小程序实现MQTT封包源码使用说明的更多相关文章

  1. ESA2GJK1DH1K基础篇: Android实现MQTT封装源码使用说明

    说明 这一节说明一下基础篇APP源码里面MyMqttCilent.java这个文件的使用 新建工程 安装MQTT的jar包 implementation 'org.eclipse.paho:org.e ...

  2. Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战

    Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战 说明:Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战,优惠券是一种常见的促销方式,在规定的周期内购买对应商品类型和额度的商品 ...

  3. ESA2GJK1DH1K微信小程序篇: 小程序连接MQTT简单的Demo

    前言 这节让大家知道小程序是怎么连接的MQTT 其实,小程序就是网页实现MQTT 使用的是下面这个包 新建一个工程 一,把包放到util里面 二,编写连接函数 三,调用连接函数 订阅主题显示接收的消息 ...

  4. 【一套代码小程序&Native&Web阶段总结篇】可以这样阅读Vue源码

    前言 前面我们对微信小程序进行了研究:[微信小程序项目实践总结]30分钟从陌生到熟悉 在实际代码过程中我们发现,我们可能又要做H5站又要做小程序同时还要做个APP,这里会造成很大的资源浪费,如果设定一 ...

  5. 微信小程序自动化测试最佳实践(附 Python 源码)

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程 ...

  6. Java经典小游戏——贪吃蛇简单实现(附源码)

    一.使用知识 Jframe GUI 双向链表 线程 二.使用工具 IntelliJ IDEA jdk 1.8 三.开发过程 3.1素材准备 首先在开发之前应该准备一些素材,已备用,我主要找了一个图片以 ...

  7. 制作python程序windows安装包(飞机大战源码)

    本文以飞机大战源码为例: 1.首先使用pyinstaller -w xxx.py打包   -w的意思是不显示命令行:飞机大战源码由多个.py文件以及一些图片,音乐文件组成,我们将main.py打包, ...

  8. 【转载】chromium浏览器开发系列第一篇:如何获取最新chromium源码

    背景:     最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧.于是乎,本文顺理成章.由于有些细节必需描述清楚,所以这次先讲如何拿到ch ...

  9. chromium浏览器开发系列第四篇:如何调试最新chromium源码

    转自:http://blog.itpub.net/20687969/viewspace-1586513/ 附上上几篇文章地址,方便大家查看: 下载源码 编译源码 目录结构 接二连三的事情,时间比较紧张 ...

随机推荐

  1. 云服务器、VPS、虚拟主机三者之间的区别?

    更多精彩内容欢迎访问我的个人博客皮皮家园:https://www.zh66.club期待您的光临哦!我是皮皮猪,感谢各位光临,能为您排忧解难小站深感荣幸!祝您生活愉快! 什么是虚拟主机? 同云主机不一 ...

  2. Charles设置断点- (超详解)

    1.选择你要设置断点的接口 2.右键选择 Breakpoints 3.断点的相关配置, Proxy ——>Breakpoint Settings 5.双击刚刚已经设置的断点接口,进行设置 6. ...

  3. 深入V8引擎-初始化默认Platform

    本来寻思着写一篇"'Hello' + ', World'"是怎么从JS代码编译然后输出的,然而compile过程的复杂性远超我的想象,强上怕会走火入魔,还是老老实实先回家种田,找点 ...

  4. css画三角形原理解析

    <div id="div1"></div><div id="div2"></div><div id=&qu ...

  5. Windows下Redis集群安装与部署

    1.下载 Redis-x64-3.2.100.zip 安装程序 官网下载地址:http://redis.io/download GitHub下载地址:https://github.com/micros ...

  6. SqlServer简单的操作XML以及SQl的 try catch等统一格式

    1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...

  7. desktoplayer.exe病毒及d:\w7rtm\base\wcp\sil\merged\ntu\ntsystem.cpp的解决方案

    1 前言 该病毒,使用360普通杀毒杀不出来,而且会伴随以下问题: a.电脑蓝屏问题[多图] b.fsc/scannow CbS.log d:\w7rtm\base\wcp\sil\merged\nt ...

  8. 转:Windows系统环境下安装dlib

    原文链接 因为今天安装Face Recognition,需要先按照 dlib .需要在windows环境下做一些图片处理,所以需要在pycharm中配置环境,而其中需要的主要是dlib的安装: 下面说 ...

  9. Win10 默认用Windows照片查看程序打开图片

    ::复制以下内容到记事本: @echo off&cd\&color 0a&cls echo 恢复Win10照片查看器 reg add "HKLM\SOFTWARE\M ...

  10. ES6兼容ie9, flex兼容ie9

    vue兼容ES6 在 ie9 的环境上,es6 的部分新对象.表达式,并不支持,解决方案是使用 babel-polyfill 组件,它可以将 es6 的代码翻译成低版本浏览器可以识别的 es5 代码 ...