mqtt.js 无法连接/错误提示 WebSocket connection to ‘ws://xxxxx‘ failed:的解决方法

 更新时间:2023年04月04日 16:54:46   作者:最凶残的小海豹  
这篇文章主要介绍了mqtt.js 无法连接/错误提示 WebSocket connection to ‘ws://xxxxx‘ failed:,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

检查点:

  • 检查自己的页面是http还是https的,然后核对用的是mqtt/mqtts,或者是ws/wss
  • 检查自己的地址是否对(尤其是BasePath),我一开始地址应该是ws://xxxxx/mqtt(BasePath是mqtt),结果我一直用ws://xxxxx。(有的BasePath是 mqtt/ws,连接地址应该就是 ws://xxxxx/mqtt/ws
  • 注意端口号,我使用的mqtt服务ws和mqtt端口号不一样

如果以上两点都没问题的话,那么就和我当下的情况一样了
使用 mqtt://xxxxx/mqtt 怎么都连不上,就提示 WebSocket connection to 'ws://xxxxx' failed:

来看看小编挑选的这款手机你是否感兴趣:

解决方法:

直接使用 ws://xxxxx/mqtt ,记得切换端口号,其他的都不改变,只是改了连接地址

  const connectUrl = `ws://xxxxx/mqtt`;	// 用这个就好了
  //  const connectUrl = `mqtt://xxxxx/mqtt`;	// 用这个报错了,用上面的就好了
  const clientId = `mqtt_${Math.random().toString(16).slice(3)}`;

  var client = mqtt.connect(connectUrl, {
    clientId,
    clean: true,
    connectTimeout: 4000,
    username: 'username',
    password: '123456',
    reconnectPeriod: 1000,
  })
  const topic = '/nodejs/mqtt'
  client.on('connect', () => {
    console.log('Connected')
    client.subscribe([topic], () => {
      console.log(`Subscribe to topic '${topic}'`)
    })
  })

如果不确定自己配置的对不对,可以用下面的地址测试

使用EMQX 提供的 免费公共 MQTT 服务器,该服务基于 EMQX 的 MQTT 物联网云平台 创建。
服务器接入信息如下:

Broker: broker.emqx.io
TCP Port: 1883
Websocket Port: 8083

const connectUrl = `ws://broker.emqx.io:8083/mqtt`;

client = mqtt.connect(connectUrl, {
  clean: true,
  connectTimeout: 4000,
  reconnectPeriod: 1000,
  clientId: 'emqx_test',
  username: 'emqx_test',
  password: 'emqx_test'
})

// 需要订阅的主题
const topic = 'test';

//成功连接后触发的回调
client.on('connect', () => {
  console.log('已经连接成功');
  // 这里可以订阅多个主题
  client.subscribe([topic], () => {
    console.log(`订阅了主题 ${topic}`)
  })
});

// 当客户端收到一个发布过来的消息时触发回调
client.on('message', function (message) {
  // 这里有可能拿到的数据格式是Uint8Array格式,所以可以直接用toString转成字符串
  // let data = JSON.parse(message.toString());
  console.log("返回的数据:", message)
});

// 连接断开后触发的回调
client.on("close", function () {
  console.log("已断开连接")
});

结果

在这里插入图片描述

到此这篇关于mqtt.js 无法连接/错误提示 WebSocket connection to ‘ws://xxxxx‘ failed:的文章就介绍到这了,更多相关mqtt.js 无法连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • 深入学习JavaScript执行上下文

    深入学习JavaScript执行上下文

    这篇文章主要介绍了深入学习JavaScript执行上下文,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下,希望对你的学习有所帮助
    2022-08-08
  • svg插入foreignObject无法响应事件解决

    svg插入foreignObject无法响应事件解决

    这篇文章主要为大家介绍了svg插入foreignObject无法响应事件解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • js中apply和call的理解与使用方法

    js中apply和call的理解与使用方法

    这篇文章主要给大家介绍了关于js中apply和call的理解与使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • js微信扫描二维码登录网站技术原理

    js微信扫描二维码登录网站技术原理

    这篇文章主要介绍了js微信扫描二维码登录网站技术原理,具有一定的参考价值,有需要的可以了解一下。
    2016-12-12
  • Worker加载JS脚本跨域问题的几种解决方法

    Worker加载JS脚本跨域问题的几种解决方法

    Web Worker 是一种在后台线程中运行的 JavaScript 脚本,允许我们在不阻塞主线程的情况下执行复杂计算或处理,Worker 加载的 JS 脚本如果存在跨域问题,可能导致脚本无法正常加载和执行,以下是解决 Worker 加载 JS 脚本跨域问题的几种方法,需要的朋友可以参考下
    2025-02-02
  • 如何使用JavaScript获取word的内容

    如何使用JavaScript获取word的内容

    这篇文章主要为大家详细介绍了如何使用JavaScript获取word的内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • JS实现轮播图效果

    JS实现轮播图效果

    这篇文章主要为大家详细介绍了JS实现轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • 利用纯JS实现像素逐渐显示的方法示例

    利用纯JS实现像素逐渐显示的方法示例

    这篇文章主要给大家介绍了利用纯JS实现像素逐渐显示的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • 利用JS实现scroll自定义滚动效果详解

    利用JS实现scroll自定义滚动效果详解

    这篇文章主要给大家介绍了关于利用JS如何实现scroll自定义滚动效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • 前端必知必会的实现URL查询参数的方法详解

    前端必知必会的实现URL查询参数的方法详解

    URL 参数查询是指在 URL 中使用问号(?)后面附加的键值对参数,本文为大家详细介绍了前端实现URL查询参数的方法,希望对大家有所帮助
    2025-02-02

最新评论