• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ESP8266 SDK开发 - 4.05 - 自建MQTT服务器篇-编写微信小程序连接MQTT服务器程序 - 杨 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

ESP8266 SDK开发 - 4.05 - 自建MQTT服务器篇-编写微信小程序连接MQTT服务器程序

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn8266ForSDK" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

注意

如果想自己实现MQTT服务器供微信小程序连接,建议购买云主机(电脑)

https://www.cnblogs.com/yangfengwu/p/13208227.html

以下教程有Windows版和Linux版,下面的教程是用来做产品项目的

配置起来周期比较长,需要等2个星期才会审核完成!

对于学习开发者使用我提供的MQTT服务器地址信息测试就可以.

 

 

 

 

下载MQTT包

https://unpkg.com/[email protected]/dist/mqtt.min.js

 

按下键盘的CTRL + A 全选

然后按下键盘的 CTRL + C 复制

 

 

 

建一个名字为 mqtt.min 后缀名为.js的文件,然后把上面的内容复制进去即可

我已经复制好了

 

 

 

 

另外我给用户封装了一个mqtt.js文件

这个文件是对MQTT操作函数的再一次封装

使得用户能够快速的和MQTT通信

 

 

 

 

 

 

 

 

新建微信小程序工程

1.新建一个文件夹用来保存微信小程序工程 名字随意

 

 

 

2.新建微信小程序工程

注:目录选择刚才新建的文件夹

 

 

 

 

3.把mqtt.min.js 和 mqtt.js文件放到utils目录

 

 

 

4.微信小程序选择不校验域名

 

 

 

5.在软件启动的地方调用一次连接函数

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

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

MQTT.ConnectMqtt();//链接MQTT

 

 

 

6.默认连接我的服务器

 

 

7.保存编译一下,如果日志打印 connect 说明连接成功

 

 

 

8.订阅主题

建议用户使用下面的定时器轮训方式订阅主题

 

 

 

 

/**
* @brief //订阅主题
* @param topic 订阅的主题
* @param q 消息等级
* @param SuccessFun 订阅成功回调函数 SuccessFun(e)
* @param FailureFun 订阅失败回调函数 FailureFun(e)
* @example      subscribeTopic("1111",0,SuccessFun,FailureFun);
**

 

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");//启动定时器,循环订阅主题,直至订阅成功

 

 

 

9.设置接收消息回调

 

 

 

    /**设置接收消息回调*/
    MQTT.SetonMessageArrivedCallBack(
      function(arg){
        console.log("主题:" + arg.destinationName + " 消息:" + arg.payloadString);
      }
    )

 

 

10.打开一个MQTT调试助手,可以发送数据给微信小程序

 

 

 

 

 

 

11.微信小程序使用MQTT发送数据

在接收回调函数里面发送数据出去,发布的主题:2222   发送的数据:msg=====

 

 

 

 

 

        MQTT.publishTopic(
          "2222", //主题
          "msg=====", //消息
          0, //消息等级
          false, //是否需要服务器保留消息
          function (arg) { //发送成功回调
            console.log("发送数据成功");
          }
        );

 

 

 

 

 

 

 

 

 

 

 

 

 

其它

1.一次性订阅多个主题

注:下面是订阅两个主题

订阅消息等级为0的主题topic

订阅消息等级为1的主题 device/1111 

//订阅多个主题
      MQTT.subscribeTopicMultiple(
        { \'topic\': { qos: 0 }, \'device/1111\': { qos: 1 } }, 

          function (){
            console.log("订阅成功");
          }, 
          function () {
            console.log("订阅失败");
          }
        );

 

2.小程序和服务器断开连接

    MQTT.SetonConnectionLostCallBack(function (arg) {
      //offline / reconnect / disconnect / close / error
      if (arg == \'offline\') console.log(\'断线\');
      else if (arg == \'reconnect\') console.log(\'尝试重连\');
      
    });

 

3.小程序和服务器连接上

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

 

4.取消订阅主题

列如:取消订阅主题 1111

MQTT.unSubscribeTopic(\'1111\', function () {});

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
搭建微信小程序的本地测试服务器 json-server发布时间:2022-07-18
下一篇:
小程序中canvas绘制网络图片发布时间:2022-07-18
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap