Я пытаюсь отправить сообщения (байтовые массивы) из Node.js в Java через сокет TCP (сериализуется с protobuf).Отправка данных из Node.js в Java через TCP
создать сокет сервера на стороне Java, и подключиться к нему из узла:
var client = net.createConnection(12345, "localhost")
client.addListener("connect", function(){
client.write(serializedMsg1)
client.end(serializedMsg2)
})
На Java стороне я Извлечение содержимого из входного потока и десериализации его:
Protocol1.parseFrom(inputStream);
Protocol2.parseFrom(inputStream);
Проблема следующая - выглядит только serializedMsg2
передается/десериализуется, а serializedMsg1
игнорируется. Как я понимаю, это происходит, потому что поток байтов не ограничен, а размер блоков данных должен быть указан явно. Данные не должны считываться непосредственно из потока на стороне java. Сначала следует читать децитированные chunkds и затем десериализоваться как массивы байтов.