广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >mqtt.js无法连接/错误提示WebSocketconnectionto‘ws://xxxxx‘failed:的解决方法
  • 662
分享到

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

摘要

检查点: 检查自己的页面是Http还是https的,然后核对用的是MQtt/mQtts,或者是ws/wss检查自己的地址是否对(尤其是BasePath),我一开始地址应该是ws://

检查点:

  • 检查自己的页面是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 无法连接内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: mqtt.js无法连接/错误提示WebSocketconnectionto‘ws://xxxxx‘failed:的解决方法

本文链接: https://www.lsjlt.com/news/178119.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作