Честно сказать да же не знаю как назвать этот вопрос. Приходят данные от прибора, а при получении их и выводе в лог файл через NGINX и NET SOCKET вижу по разному.
NGINX выдает в виде - "\x01\x17\x80\x01\x96\x02\x18\x03864006049200006\x042\x00By" 400 157 "-" "-"
NET SOCKET так - <\Buffer 01 17 80 01 96 02 18 03 38 36 34 33 37 36 30 34 39 32 30 34 31 36 36 04 32 00 42 79\>
Хочу в NET SOCKET получать данные как в NGINX, просто потому что их так проще разбить на нужные части. При выводе Буфера получается все в строку и это совсем не удобно. Ответ получается
864006049200006By, а если он еще и перемешан или приходит в другом порядке, как понять что к чему.
Сами данные отправляются по протоколу tcp. Вот мой кривой кусок кода:
Кусок го*наconst PORT = 6020;
var crc16 = require ('js-crc').crc16;
var net = require('net');
var server = net.createServer();
var clients = [];
net.createServer( (socket) => {
socket.name = socket.remoteAddress + ":" + socket.remotePort;
clients.push(socket);
socket.on('data', (data) => {
console.log(data)
console.log(data.toString("utf8"))
//broadcast(socket.name + " message: " + data, socket);
console.log( crc16(data) )
socket.write( crc16(data) );
});
socket.on('end', () => {
console.log('end')
clients.splice(clients.indexOf(socket), 1);
});
}).listen(PORT);
console.log(`TCP Server running at localhost port ${PORT}\n`);
Дайте совет или пример как мне получать адекватные заголовки и разбивать их. Чтобы можно было выстроить адекватную структуру получаемых данных.