diff --git a/lib/client.js b/lib/client.js index ce0b9122..833faf02 100644 --- a/lib/client.js +++ b/lib/client.js @@ -40,9 +40,9 @@ p.connect = function() { fullBuffer.write(data,8); self.stream.write(fullBuffer); }); - - this.stream.on('data', function(data) { - var parser = new Parser(data); + var parser = new Parser(); + this.stream.on('data', function(buffer) { + parser.setBuffer(buffer); var msg = parser.parseMessage(); while(msg) { self.emit('message', msg); diff --git a/lib/parser.js b/lib/parser.js index 3cddfbec..730288dc 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -1,10 +1,14 @@ var Parser = function(buffer) { - this.offset = 0; - this.buffer = buffer; + }; var p = Parser.prototype; +p.setBuffer = function(buffer) { + this.buffer = buffer; + this.offset = 0; +}; + p.parseMessage = function() { if(this.buffer.length == this.offset) { return false;