uni-app云函数中使用mqtt接收消息

javascript 复制代码
const mqtt = require('mqtt');

exports.main = async (event, context) => {
  return new Promise((resolve, reject) => {
    // 连接到 MQTT 服务器
    const client = mqtt.connect('wss://mqtt.example.com:8083/mqtt', {
      username: 'your-username',
      password: 'your-password',
    });

    // 连接成功
    client.on('connect', () => {
      console.log('MQTT 连接成功');
      client.subscribe('test/topic', (err) => {
        if (err) {
          console.error('订阅失败:', err);
          reject(err);
        } else {
          console.log('订阅成功');
        }
      });
    });

    // 接收消息
    client.on('message', (topic, message) => {
      console.log(`收到消息: ${message.toString()}`);
      resolve({
        topic,
        message: message.toString(),
      });
    });

    // 连接失败
    client.on('error', (error) => {
      console.error('MQTT 连接失败:', error);
      reject(error);
    });
  });
};

注意: 需要用return new Promise((resolve, reject) => { 包起来。我没包起来,导致项目中可用,但是云函数中用不了。

相关推荐
天蓝色的鱼鱼1 小时前
前端开发者的组件设计之痛:为什么我的组件总是难以维护?
前端·react.js
codingandsleeping1 小时前
使用orval自动拉取swagger文档并生成ts接口
前端·javascript
石金龙2 小时前
[译] Composition in CSS
前端·css
白水清风2 小时前
微前端学习记录(qiankun、wujie、micro-app)
前端·javascript·前端工程化
Ticnix2 小时前
函数封装实现Echarts多表渲染/叠加渲染
前端·echarts
用户22152044278002 小时前
new、原型和原型链浅析
前端·javascript
阿星做前端2 小时前
coze源码解读: space develop 页面
前端·javascript
叫我小窝吧2 小时前
Promise 的使用
前端·javascript
NBtab3 小时前
Vite + Vue3项目版本更新检查与页面自动刷新方案
前端
天天扭码3 小时前
来全面地review一下Flex布局(面试可用)
前端·css·面试