@@ -281,7 +281,7 @@ function Parser (opts) {
281
281
this . expectOffset = 0 ;
282
282
this . expectBuffer = null ;
283
283
this . expectHandler = null ;
284
- this . currentMessage = '' ;
284
+ this . currentMessage = [ ] ;
285
285
this . _maxBuffer = ( opts && opts . maxBuffer ) || 10E7 ;
286
286
this . _dataLength = 0 ;
287
287
@@ -290,10 +290,10 @@ function Parser (opts) {
290
290
// text
291
291
'1' : function ( data ) {
292
292
var finish = function ( mask , data ) {
293
- self . currentMessage += self . unmask ( mask , data ) ;
293
+ self . currentMessage . push ( self . unmask ( mask , data , true ) ) ;
294
294
if ( self . state . lastFragment ) {
295
- self . emit ( 'data' , self . currentMessage ) ;
296
- self . currentMessage = '' ;
295
+ self . emit ( 'data' , self . concatBuffers ( self . currentMessage ) . toString ( 'utf8' ) ) ;
296
+ self . currentMessage = [ ] ;
297
297
}
298
298
self . endPacket ( ) ;
299
299
}
@@ -338,11 +338,10 @@ function Parser (opts) {
338
338
// binary
339
339
'2' : function ( data ) {
340
340
var finish = function ( mask , data ) {
341
- if ( typeof self . currentMessage == 'string' ) self . currentMessage = [ ] ; // build a buffer list
342
341
self . currentMessage . push ( self . unmask ( mask , data , true ) ) ;
343
342
if ( self . state . lastFragment ) {
344
343
self . emit ( 'binary' , self . concatBuffers ( self . currentMessage ) ) ;
345
- self . currentMessage = '' ;
344
+ self . currentMessage = [ ] ;
346
345
}
347
346
self . endPacket ( ) ;
348
347
}
0 commit comments