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

相关推荐
FRing031 分钟前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
葡萄城技术团队36 分钟前
在 SpreadJS 里新增右键菜单,把业务动作放到用户手边
前端
大明二代38 分钟前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能
deli00741 分钟前
代码截图一键出 PNG 实测:3 种窗口风格,长行超 95 字符会被裁
前端
大哥430943 分钟前
慢 ≠ 挂:AI 搜索降级判定的设计,与一次 reasoning 模型排查复盘
前端
UaoN1 小时前
作为全栈开发者,为什么看到 Shopify 回归原生,我依然选择 React Native
前端·后端
PBitW1 小时前
行内编辑,前端如何兜底?😭😭😭
前端·面试
小羊没烦恼!1 小时前
C#综合揭秘——Entity Framework 并发处理详解
java·开发语言·前端·javascript·数据库·mysql·c#
wing982 小时前
人生第一个私活:不到 2 小时,到手 350 元
前端·后端·程序员
张张123y2 小时前
后端第十二课:Agent 开发(让大模型从“会答“升级到“会做“)
前端·大模型·llm·agent·rag