function send(transport, message) {
var buffer = new Buffer(message.length + 4);
buffer.writeInt32BE(message.length, 0);
buffer.write(message, 4, message.length, 'utf-8');
transport.write(buffer);
}
I believe "message.length" returns the string length, not the byte length as encoded by "buffer.write(......, "utf-8"), resulting in only a partially sent message.
Proposed fix
This works for me:
function send(transport, message) {
message = Buffer.from(message, "utf-8");
var buffer = new Buffer(4);
buffer.writeInt32BE(message.length, 0);
buffer = Buffer.concat([buffer, message], buffer.length + message.length);
transport.write(buffer);
}
Version
Context
Inside the javascript code:
I believe "message.length" returns the string length, not the byte length as encoded by "buffer.write(......, "utf-8"), resulting in only a partially sent message.
Proposed fix
This works for me: