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) => { 包起来。我没包起来,导致项目中可用,但是云函数中用不了。

相关推荐
不会写DN2 分钟前
Protocol Buffers(.proto)实战入门:Go 生态最常用的接口定义语言
java·前端·golang
小小小米粒6 分钟前
原生 JS:数据和视图「分离」,必须手动同步原生 JS 里,数据是数据,视图是视图,两者完全没关系
前端·javascript·vue.js
摸鱼仙人~10 分钟前
纯前端 Vue 实现共享预览链接方案
前端·javascript·vue.js
happymaker062610 分钟前
VueCli标准化工程中的组件通信操作
开发语言·前端·javascript
weixin_4434785111 分钟前
Flutter第三方常用组件包学习之状态管理
javascript·学习·flutter
Yiyi_Coding12 分钟前
Proxy详解
java·前端·javascript
a11177614 分钟前
PreTeXt 开源推荐(应用demo)
前端·开源·html
追光的蜗牛丿19 分钟前
C++传递参数时什么情况下传递引用
开发语言·javascript·c++
摸鱼仙人~21 分钟前
前端开发中“共享预览链接”场景-企业级最简方案:Vue + 极简后端(2 接口 1 张表)
前端·javascript·vue.js