我想用Java来连接MQTT代理,以便对某个主题进行下标并发布消息。连接需要通过端口1883上的tcp完成。我正在使用MQTT.js库。前端在angularjs中。 接下来的示例是MQTT.js页面中的示例,尽管无法实现连接。谁能帮忙吗?
通过index.html连接:
<script src="../node_modules/mqtt/browserMqtt.js"></script>
连接代码:
var client = mqtt.connect('url.com:1883',{clientId :'client1', clean: true});
client.on('connect', function () {
console.log("onsubscribe");
client.subscribe('votingSignals', function (err) {
if (!err) {
console.log("onsubscribe");
client.publish('votingSignals', 'start')
}
})
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
client.end()
})
显示的错误是:
与'ws://url.com:1883 /'的WebSocket连接失败:WebSocket握手期间出错:net :: ERR_CONNECTION_RESET
答案 0 :(得分:0)
在Web浏览器中,您只能在Websockets上使用MQTT,而不能在本地MQTT(通过TCP)上使用。
这是因为浏览器不允许您打开普通套接字。