uniapp 使用mqtt 报错 socketTask onOpen is not a function

ゞ 浴缸里的玫瑰 2024-04-22 15:15 189阅读 1赞

1. 报错的解决方法

在man.js文件添加这个

  1. // #ifndef MP
  2. // 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask
  3. uni.connectSocket = (function(connectSocket) {
  4. return function(options) {
  5. console.log(options)
  6. options.success = options.success || function() {}
  7. return connectSocket.call(this, options)
  8. }
  9. })(uni.connectSocket)
  10. // #endif

1. 安装mqtt,使用mqtt@3.0.0

  1. yarn add mqtt@3.0.0
  2. npm install mqtt@3.0.0

为啥不用最新版本4.0,主要是最新版有问题,根据用不起。

2. 建立连接,监听消息

  1. let options = {
  2. clientId: "web-" + Math.random().toString(36).replace('.', ''),
  3. protocolVersion: 5,
  4. keepalive: 30,
  5. connectTimeout: 5 * 1000,
  6. }
  7. let url = "wx://127.0.0.1:8088/mqtt";
  8. let client = mqtt(url,options); //1.发起连接
  9. client.on("connect", () => { //2. 监听连接是否成功
  10. console.log('连接成功');
  11. client.subscribe("user/11", (err) => { }); //3.订阅用户频道
  12. });

发表评论

表情:
评论列表 (有 0 条评论,189人围观)

还没有评论,来说两句吧...

相关阅读