微信小程序在websocket上使用mqtt协议

介绍

一个在微信小程序中测试成功可用的mqtt.js版本。

因用npm install或者直接下载github上面的 MQTT.js 在微信小程序中使用碰到了各种问题,干脆就备份一个可用的版本到 mqtt-wechat

注意微信小程序只能用wss协议,ws协议可以用来测试,但是要在微信开发工具中关闭安全通信校验。

安装教程

直接下下载mqtt.js 保存到项目代码文件中。

使用说明

连接:

需指定protocol为"wxs"或者"wx"否则库会当成在浏览器中,从而无法工作

JavaScript

import mqtt from "./mqtt";
const client = mqtt.connect('wss://test.mosquitto.org', {protocol: "wxs"});

或者修改URL,如你的链接是wss://则修改为wxs://,如果你的链接是ws://则修改为wx://

JavaScript

import mqtt from "./mqtt";
const client = connect('wxs://test.mosquitto.org');

例子:

JavaScript

import mqtt from "./mqtt";
var client  = mqtt.connect('wss://test.mosquitto.org', {
    protocol: "wxs",
    clientId: 'wechat_' + Math.random().toString(16).substr(2, 8),
    username: 'your username',
    password: 'your password',
    keepalive: 60,
});

client.on('connect', function () {
    client.subscribe('presence', function (err) {
        if (!err) {
            client.publish('presence', 'Hello mqtt')
        }
    })
})

client.on('message', function (topic, message) {
    // message is Buffer
    console.log(message.toString())
    client.end()
})

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在微信小程序使用wx连接mqtt,需要使用以下步骤: 1. 引入mqtt.min.js库:在小程序使用mqtt需要引入mqtt.min.js库,可以通过npm安装,也可以直接下载js文件并引入。 2. 创建连接:使用wx.connectSocket方法创建mqtt连接,参数中需要指定mqtt服务器的地址,以及ws协议。 3. 监听连接事件:使用wx.onSocketOpen方法监听连接事件,包括连接成功、连接失败等事件。 4. 发送消息:使用wx.sendSocketMessage方法向mqtt服务器发送消息。参数包括消息内容等。 5. 监听消息:使用wx.onSocketMessage方法监听mqtt服务器发送的消息。参数包括消息内容等。 下面是一个简单的示例代码: ``` const mqtt = require('mqtt.min.js') wx.connectSocket({ url: 'wxs://mqtt.example.com', header: { 'content-type': 'application/json' }, protocols: ['mqtt'], success() { console.log('WebSocket连接打开') }, fail(err) { console.log('WebSocket连接失败', err) } }) wx.onSocketOpen(function () { // 连接成功 wx.sendSocketMessage({ data: 'hello mqtt', success() { console.log('发送成功') } }) }) wx.onSocketMessage(function (res) { // 收到消息 console.log(res.data) }) ``` 在上面的代码中,我们使用wx.connectSocket方法创建mqtt连接,并指定了mqtt服务器的地址、协议类型、请求头等信息。在连接成功后,我们使用wx.sendSocketMessage方法向mqtt服务器发送了一条消息。最后,我们使用wx.onSocketMessage方法监听mqtt服务器发送的消息,并在收到消息后输出了消息的内容。注意,在微信小程序中,使用wx.connectSocket连接mqtt服务器时需要指定protocols为['mqtt']。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值