我有点新的反应,并试图了解如何使MQTT与它一起工作。
我尝试遵循在这里发布的代码示例:https://www.npmjs.com/package/mqtt-react
但没有成功。出于某种原因,它只是什么都不做。
这是我的密码:
App.js类:
import React, { Component } from 'react';
import './App.css';
import PostMqtt from './PostMessage.js';
import {Connector} from "mqtt-react";
class App extends Component {
render() {
return (
<div className="App">
<PostMqtt/>
</div>
);
}
}
export default () => (
<Connector mqttProps="ws://test.mosquitto.org/">
<App />
</Connector>
);PostMessage.js类:
import React from 'react';
import { subscribe } from 'mqtt-react';
export class PostMessage extends React.Component {
sendMessage(e) {
e.preventDefault();
//MQTT client is passed on
const { mqtt } = this.props;
mqtt.publish('sensor', 'My Message');
}
render() {
return (
<button onClick={this.sendMessage.bind(this)}>
Send Message
</button>
);
}
}
export default subscribe({
topic: 'sensor'
})(PostMessage)有什么问题吗?谢谢!
发布于 2018-03-01 20:16:00
经过长时间的研究,我找到了解决办法。
上面的连接器支持MQTT上的web套接字。默认的MQTT端口是1883年,它直接进入MQTT代理,而不是通过websockets,这就是它没有连接的原因。
解决方案是使用端口8080,即“WebSockets上的MQTT,未加密”(根据蚊子文档)。
因此,我所要做的就是将下一行更改为和它一起工作。
希望能帮上忙。
发布于 2018-10-19 15:51:45
我还遇到了websocket / mqtt协议问题。我正在使用本教程运行一个定制的mqtt代理。为了让message使用react,我找到了一篇描述如何将mosca绑定到http服务器的帖子。我丢失了链接,但下面是我用来将两者结合在一起的片段:
websocket-broker.js
var http = require('http')
, httpServ = http.createServer()
, mosca = require('mosca')
, mqttServ = new mosca.Server({});
mqttServ.attachHttpServer(httpServ);
httpServ.listen(80);然后开始我的经纪人,我只是做了一个简单的:
node websocket-broker.js我希望这对今后处理这一问题的人有所帮助!
https://stackoverflow.com/questions/48944899
复制相似问题