将 Reactjs 连接到 Myqtthub

Connecting Reactjs to Myqtthub

你好,我是所有物联网的新手,我希望能够使用 https://myqtthub.com 作为我们的代理,通过 mqtt 从 Arduino 发送和接收数据。我使用以下代码进行连接:

import React, { Component } from 'react';

var mqtt = require('mqtt');

var options={
    clientId:"mqttjs01",
    username:"user",
    password:"password",
    clean:true};
    var client = mqtt.connect("mqtt://node02.myqtthub.com",options)

client.on('connect', () => {
    alert('Connected!');
   
    console.log('Connected');
});




class Garage extends Component {
   
   
    render() {
        return (
            <div>
                <h1>HEllooo</h1>
            </div>
        );
    }
}

export default Garage;

我遇到了错误: “与 'ws://node02.myqtthub.com/' 的 WebSocket 连接失败:WebSocket 握手期间出错:意外的响应代码:301”

任何帮助将不胜感激。

呃....从哪里开始....

首先,去 https://github.com/mqttjs/MQTT.js

阅读文档

您已连接,但您从未订阅...更不用说您没有post任何您正在发布任何数据的代码。您的 client 可以发送 (PUBLISH) 和接收 (SUBSCRIBE) 数据,但您必须同时设置它们。

至于您最初的问题,您没有定义要在连接上使用的端口。您还将 mqtt:// 指定为协议,而不是 ws://,因此如果您确实需要 WebSocket 连接,这也会给您带来问题。您如何获得该 websocket 错误是一个谜,因为您的代码示例显示它使用的是 MQTT 协议。

如果您刚刚起步,请坚持使用 mqtt:// 并以此为基础继续努力。

假设这就是浏览器中的所有内容 运行(主要是因为 MQTT.js 强制连接通过 ws://,因为这是浏览器中的唯一选项)。

查看 myqtthub 的文档,他们没有声称对 Websockets 上的 MQTT 有任何支持(support 论坛说他们还不支持)。这意味着在他们添加 Websockets 支持之前,您的应用程序将无法与此代理提供商一起使用..