ESA2GJK1DH1K微信小程序篇: 小程序实现MQTT封包源码使用说明

说明

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

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

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

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

新建工程,拷贝文件

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

说明

连接MQTT

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

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

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

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

App({
  onLaunch: function () {

    MQTT.ConnectMqtt();//链接MQTT

成功连接MQTT

测试断线重连

订阅主题

      MQTT.subscribeTopic(
        "1111", //订阅1111
        0,//消息等级
        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", //订阅1111
        0,//消息等级
        function () {
          console.log("订阅成功");
          clearInterval(TimeNumber);//订阅成功清除定时
        }, function () {
          console.log("订阅失败");
        }
      );//订阅主题

    }, 1000, "null");//启动定时器,循环订阅主题,直至订阅成功

取消订阅主题

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

发布消息

发布字符串消息

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

发布16进制消息

0xAA 0x88 0xFF 0xdd

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

接收消息

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

监听MQTT状态

掉线

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

上线

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

原文地址:https://www.cnblogs.com/yangfengwu/p/11832651.html

时间: 2024-08-24 07:18:34

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

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

Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战 说明:Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战,优惠券是一种常见的促销方式,在规定的周期内购买对应商品类型和额度的商品时,结算时满足一定条件会减免一定金额.通过发放优惠券,引导用户购买相应的商品,在下单的时候抵扣一定的费用,达到促销.提高客单价的目标. 优惠券不论在线上还是线下,适用范围都比较广泛.例如滴滴发的专车券.外卖平台发的外卖券.京东淘宝的优惠券等. 1.优惠券的类型和应用场景 优惠券有多种分类方式,按照使

c#Winform程序的toolStripButton自定义背景应用示例源码

C# Winform程序的toolStrip中toolStripButton的背景是蓝色的,如何改变背景及边框的颜色和样式呢? 实现此功能需要重写toolStripButton的Paint方法 这里只是给出解决问题的思路和方法,如下图,当鼠标移到按钮上,背景会变为黑色 实现代码如下: ToolStripButton tsb = (ToolStripButton)sender; Rectangle rectButton = tsb.Bounds; Point p = toolStrip1.Poin

资深程序员告诉你:直播系统源码开发“四部曲”

你是怎么开始接触直播APP的? 你是通过什么渠道接触直播APP? 你观看直播的频率是多长? 你使用直播APP是为了什么? 直播APP 经常使用直播APP的你这些问你都有认真想过吗?直播不仅丰富了我们的日常生活,也让企业有了一个宣传自己的渠道,依附于其他平台的直播都有局限性,因此很多垂直行业都会选择自己开发直播平台,下面同创天达小编就简单介绍一下直播系统源码开发的"四部曲". 第一步,采集,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动,出了问题特别

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

前言 这节让大家知道小程序是怎么连接的MQTT 其实,小程序就是网页实现MQTT 使用的是下面这个包 新建一个工程 一,把包放到util里面 二,编写连接函数 三,调用连接函数 订阅主题显示接收的消息 一,连接成功订阅 111111 的主题 二,连接MQTT的时候设置下接收数据的回调函数 测试 发送数据 发布的主题为222222   发送的消息为接收的消息 测试 原文地址:https://www.cnblogs.com/yangfengwu/p/11824096.html

如何使用微信小程序开发一个弹窗页面(附源码)

在小程序的开发过程中,我们肯定会遇到开发一个弹窗页面的情况,我们先看一下小程序官方对于弹窗页面的解释.API的接口如下 从官方给出的代码示例来看,想当简单,就像一个asert,并不能看出弹窗的真实需求.所以今天HTML51.COM就写了一个弹窗小程序教程,供大家学习参考.首页我们先看一下动态的效果图: 我们首先看到的是首页代码: <view class="copyright"> <view class="copyright_item">Cop

程序员小记:购买一对一直播源码之后,域名备案和上架解决方案

打败你的不是对手,颠覆你的不是同行,甩掉你的不是时代,而是你传统的思维和相对落后的观念,成功不是能不能, 而是你要不要, 愿意不愿意.金九银十如期而至,谢谢您还在这里,接下来的旅途虽远,我们携起手风雨兼程.继续听我讲述一对一直播域名备案和上架解决方案--域名备案: 1.先去阿里云申请账号然后进行实名制认证通过.可以用个人支付宝一键认证通过当天生效立即就可以使用,如果是企业的需要填写相关信息得隔天生效. 2.然后购买服务器三个月,(服务器配置 :2核2g 3m 带宽后期可根据实际情况一键在线升级)

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

Linux下查看并下载命令源码包(根据命令/应用程序逆向获取并且安装其所属源码包)

使用linux的过程中,我们会熟悉各种命令,偶尔我们不禁会问,这些命令是怎么实现的,学习他们其实是学习linux高级系统编程很快捷的方法. 这些命令的源码肯定是存放在相应的包里面,但是是哪些包呢? 发行版的包管理器为我们提供了很方便的命令接口,供我们查找我们指定命令所在的包 比如我们以最普通的uname命令来说明, 使用我们使用whereis或者which命令可以查找命令的绝对位置 通过rpm或者dpkg命令搜索命令所属的包信息 下载并安装对应的源码source包,即可得到源码 CentOS等r

c++ primer plus 第六版程序清单16.8 vect2.cpp 手打源码编译错误!!!

坚持手打源码,编译运行,但未每个程序均进行单步调试,昨天在VS2017上手打c++ primer plus 第六版程序清单16.8 vect2.cpp后编译出错: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------