Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Reactjs中通过websocket使用MQTT?_Reactjs_Websocket_Mqtt_Aedes - Fatal编程技术网

如何在Reactjs中通过websocket使用MQTT?

如何在Reactjs中通过websocket使用MQTT?,reactjs,websocket,mqtt,aedes,Reactjs,Websocket,Mqtt,Aedes,我使用aedes创建如下服务器: const aedes = require('aedes')() const httpServer = require('http').createServer() const ws = require('websocket-stream') const port = 8888 ws.createServer({ server: httpServer }, aedes.handle) httpServer.listen(port, function () {

我使用aedes创建如下服务器:

const aedes = require('aedes')()
const httpServer = require('http').createServer()
const ws = require('websocket-stream')
const port = 8888

ws.createServer({ server: httpServer }, aedes.handle)

httpServer.listen(port, function () {
  console.log('websocket server listening on port ', port)
})
此代码在端口8888正常运行。在Reactjs中使用mqtt react挂钩之后,我创建了以下文件:

import React from 'react';

import { Connector } from 'mqtt-react-hooks';
import { useMqttState } from 'mqtt-react-hooks';

export default function App() {
const { connectionStatus } = useMqttState();
  return (
    <Connector brokerUrl="mqtt://domain.com:8888">
        <h1>{`Status: ${connectionStatus}`}</h1>
    </Connector>
  );
}
这段代码运行正常

我还更改了客户端文件:

    import React from 'react'; 
    var optionsMqtt={
      clientId: uuidv4(),
      rejectUnauthorized : false,
      ca: cert_mqtt.ca_mqtt,
      key: cert_mqtt.key_mqtt,
      cert: cert_mqtt.crt_mqtt
    }
    const websocketUrl = "wss://domain.com:8888";
    export default function App() {
      const client = mqtt.connect(websocketUrl,optionsMqtt);
      client.stream.on("error", (err) => {
        console.log(`Connection to ${websocketUrl} failed`);
        client.end();
      });
    client.on('connect', function () {
      console.log('Connected');
    });
    return (
        <>
            <h1>TEST</h1>
        <>
      );
    }
从“React”导入React;
var选项MQTT={
clientId:uuidv4(),
拒绝:错误,
ca:cert_mqtt.ca_mqtt,
key:cert_mqtt.key_mqtt,
证书:cert_mqtt.crt_mqtt
}
常量websocketUrl=”wss://domain.com:8888";
导出默认函数App(){
const client=mqtt.connect(websocketUrl,optionsMqtt);
client.stream.on(“error”,(err)=>{
log(`connectionto${websocketUrl}失败`);
client.end();
});
client.on('connect',function(){
console.log('Connected');
});
返回(
试验
);
}
仍然错误:

ws.js:108 WebSocket连接到'wss://domain.com:8888/'失败: 建立连接时出错:net::ERR\u连接被拒绝


我还关闭了防火墙,打开了8888端口。

您已经通过使用URL中的
MQTT://
模式明确告诉客户端使用本机MQTT


将其更改为
ws://

您已通过在URL中使用
MQTT://
模式明确告知客户端使用本机MQTT


将其更改为
ws://

谢谢您,先生。我更新了一点谢谢你,先生。我在上面更新了一点
    import React from 'react'; 
    var optionsMqtt={
      clientId: uuidv4(),
      rejectUnauthorized : false,
      ca: cert_mqtt.ca_mqtt,
      key: cert_mqtt.key_mqtt,
      cert: cert_mqtt.crt_mqtt
    }
    const websocketUrl = "wss://domain.com:8888";
    export default function App() {
      const client = mqtt.connect(websocketUrl,optionsMqtt);
      client.stream.on("error", (err) => {
        console.log(`Connection to ${websocketUrl} failed`);
        client.end();
      });
    client.on('connect', function () {
      console.log('Connected');
    });
    return (
        <>
            <h1>TEST</h1>
        <>
      );
    }