Я объединил две строки на стороне клиента, чтобы опубликовать sh на топи c
client.publish(topic,payload = String(message)+","+String(weather))
Я получаю их на стороне сервера в виде строки Но это два разных сообщения, которые я необходимо отправить по двум разным http-адресам. Я хочу разделить сообщение на стороне сервера, но функция разделения не работает
Это сообщение об ошибке.
TypeError: Невозможно прочитать свойство 'split 'из неопределенного
//MQTT publisher
var mqtt = require('mqtt')
var fetch = require('node-fetch')
var client = mqtt.connect('mqtt://localhost:1884')
var topic = 'local/temperature'
//var message = 'The status of weather station'
client.on('connect',()=>{
setInterval(async function(req,res){
let weatherResponse = await fetch("https://api.openweathermap.org/data/2.5/weather?q=villingen-schwenningen,de&units=metric&appid=4b66b441cf82f4bca0467ecebb363a79");
let weatherObj = await weatherResponse.json()
let temperature = weatherObj.main.temp
let message = JSON.stringify(temperature)
let weather = JSON.stringify(weatherObj)
client.publish(topic,payload = String(message)+","+String(weather))
console.log(payload)
console.log('Temperature value sent!')
console.log('The temperature is',message)
},3000)
})
//MQTT server (mosca broker)
const mosca = require("mosca")
var temperature = 0;
moscaSettings = {
host: "localhost",
port: 1884,
persistence: { factory: mosca.persistence.Memory }
}
var server = new mosca.Server(moscaSettings);
server.on('clientConnected', function(client) {
console.log('client connected', client.id);
});
server.on('published', function(packet, client) {
console.log('Published', packet.payload.toString());
// I want to split the payload here
//console.log(info);
});
server.on('ready', setup);
function setup() {
console.log('Mosca server is up and running on port '+ moscaSettings.port);
}