Правильно, поэтому я пытаюсь передать некоторые файлы, используя mqtt в nodejs.
Это прекрасно работает, если файл крошечный, но что-то маленькое, 6 МБ rar-файла становится 21 МБ, когда он превращается в строку или буфер.
Мне нужно иметь некоторые детали с файлом, такие как путь и имя файла, поэтому я создал объект, который содержит буфер файла и данные, которые мне нужны. Как только я получу это, я его Stringify с помощью JSON и могу отправить его.
Каков наилучший способ убедиться, что вы получаете правильный размер буфера для передачи mqtt?
Спасибо заранее.
Томас
var mqtt = require('mqtt');
var fs = require('fs');
let client
let message
let bufferMessage
let data
function genPayload() {
data = fs.readFileSync('app.rar');
let message = {
"filename": "app.rar",
"filePath": "C:\\test\\",
"data": data
}
console.log('Preparing File')
bufferMessage = JSON.stringify(message);
}
function Connect() {
client = mqtt.connect("mqtt://test.mosquitto.org", {
clientId: "vfs001"
});
client.on('connect', function () {
console.log('Client Connected')
});
}
function SendFile() {
client.publish('TestReplFile', bufferMessage)
console.log('File is on the way')
};
genPayload();
Connect();
setTimeout(SendFile, 5000);