3
Я создал тестовый сервер, который отправляет куски сжатого JSON. Когда я подключаюсь к серверу, он отправляет недействительный JSON, и для жизни я не могу понять, почему. Результат добавляет дополнительную двойную кавычку.nodejs: разобрать куски json
Серверный код:
const net = require('net'),
server = net.createServer(function(connection) {
console.log('subscriber connected.');
// send first chunk immediately
connection.write('{"type":"changed","file":"targ"');
let timer = setTimeout(function() {
connection.write('et.txt","timestamp":1358175758495}' + '\n');
connection.end();
}, 1000);
connection.on('end', function() {
clearTimeout(timer);
console.log('subscriber disconnected');
});
});
server.listen(5432, function() {
console.log('test server listening for subs...')
});
ldj.js
'use strict';
const
events = require('events'),
util = require('util'),
// client constructor
LDJClient = function(stream) {
events.EventEmitter.call(this);
let self = this;
let buffer = '';
stream.on('data', function(data) {
buffer += data;
console.log(buffer)
let boundary = buffer.indexOf('\n');
while(boundary !== -1) {
let input = buffer.substr(0, boundary);
buffer = buffer.substr(boundary + 1);
//self.emit('message', JSON.parse(input));
boundary = buffer.indexOf('\n');
}
});
};
util.inherits(LDJClient, events.EventEmitter);
// expose module methods
exports.LDJClient = LDJClient;
exports.connect = function(stream) {
return new LDJClient(stream);
};
Выход:
{"type":"changed","file":"targ"
{"type":"changed","file":"targ"et.txt","timestamp":1358175758495}
Это дополнительный "не должно быть в "" значение target.txt Любые идеи.?
TIA
Вы можете разместить код сервера? Вам нужно убедиться, что буферизуется в новой строке правильно, чем синтаксический анализ. Тот факт, что 'файл' вообще не цитируется в выводе, указывает на то, что на сервере происходит что-то странное. –
Дополнительная двойная кавычка после 'targ':' '{"type": "changed", "file": "targ"' '? –
ERR. Благодарю. Я забыл повторно запустить сервер узла после внесенных изменений, заставив меня подумать, что это не сработало. : / – cp3