workers: optimize protocol more.

This commit is contained in:
Christopher Jeffrey 2016-07-27 05:59:39 -07:00
parent 52dd3c2cdc
commit 432ee64713
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -820,21 +820,21 @@ function Framer() {
utils.inherits(Framer, EventEmitter);
Framer.prototype.packet = function packet(job, cmd, items) {
var p = new BufferWriter();
var payload = this.body(items);
var packet = new Buffer(25 + payload.length + 1);
assert(cmd.length < 12);
assert(payload.length <= 0xffffffff);
p.writeU32(0xdeadbeef);
p.writeU32(job);
p.writeString(cmd, 'ascii');
p.fill(0, 12 - cmd.length);
p.writeU32(payload.length + 1);
p.writeBytes(payload);
p.writeU8(0x0a);
packet.writeUInt32LE(0xdeadbeef, 0, true);
packet.writeUInt32LE(job, 4, true);
packet.writeUInt8(cmd.length, 8, true);
packet.write(cmd, 9, 'ascii');
packet.writeUInt32LE(payload.length + 1, 21, true);
payload.copy(packet, 25);
packet[packet.length - 1] = 0x0a;
return p.render();
return packet;
};
Framer.prototype.body = function body(items) {
@ -939,7 +939,7 @@ function Parser() {
EventEmitter.call(this);
this.waiting = 24;
this.waiting = 25;
this.packet = null;
this.pending = [];
this.total = 0;
@ -1013,7 +1013,7 @@ Parser.prototype.parse = function parse(data) {
packet = this.packet;
this.waiting = 24;
this.waiting = 25;
this.packet = null;
try {
@ -1032,7 +1032,7 @@ Parser.prototype.parse = function parse(data) {
};
Parser.prototype.parseHeader = function parseHeader(data) {
var magic, job, size, i, cmd;
var magic, job, len, cmd, size;
magic = data.readUInt32LE(0, true);
@ -1041,14 +1041,10 @@ Parser.prototype.parseHeader = function parseHeader(data) {
job = data.readUInt32LE(4, true);
for (i = 0; data[i + 8] !== 0 && i < 12; i++);
len = data[8];
cmd = data.toString('ascii', 9, 9 + len);
if (i === 12)
throw new Error('Not NULL-terminated cmd');
cmd = data.toString('ascii', 8, 8 + i);
size = data.readUInt32LE(20, true);
size = data.readUInt32LE(21, true);
return new Packet(job, cmd, size);
};