Брокер и издатель работают на одном компьютере, а подписчик работает на другом компьютере. Проблема: подписчик не получает опубликованное сообщение.
Код работает нормально, если брокер, издатель и подписчик работают на одном компьютере.
подписчик. js
var client = mqtt.connect('mqtt://192.168.10.6:1234');
192.168.10.6: 1234 - это IP-адрес компьютера, на котором работает брокер и издатель.
Брокер. js
const aedes = require('aedes')()
const server = require('net').createServer(aedes.handle)
const port = 1234
server.listen(port, function () {
console.log('server started and listening on port ', port)
})
Издатель. js
const express= require('express')
const mqtt = require('mqtt');
const app = express();
var client = mqtt.connect('mqtt://127.0.0.1:1234');
topic = "greeting";
msg = "hello";
app.get('/', (req,res) => {
client.publish(topic,msg);
res.send("Mqtt just published a message")
})
app.listen(5000);
Подписчик. js
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://192.168.10.6:1234');
topic = "greetings"
client.on('connect', ()=> {
client.subscribe(topic)
})
client.on('message', (topic, payload) => {
payload= payload.toString();
console.log(payload);
})