diff --git a/lib/protocol/Parser.js b/lib/protocol/Parser.js index b2eb25ff9..a1db2c46e 100644 --- a/lib/protocol/Parser.js +++ b/lib/protocol/Parser.js @@ -595,15 +595,19 @@ Parser.prototype._readPacketHeader = function _readPacketHeader() { ); if (this._packetHeader.number !== this._nextPacketNumber) { - var err = new Error( - 'Packets out of order. Got: ' + this._packetHeader.number + ' ' + - 'Expected: ' + this._nextPacketNumber - ); - - err.code = 'PROTOCOL_PACKETS_OUT_OF_ORDER'; - err.fatal = true; + if (this._compressed && this._packetHeader.number === (this._nextCompressedPacketNumber - 1)) { + this._nextPacketNumber = this._nextCompressedPacketNumber - 1; + } else { + var err = new Error( + 'Packets out of order. Got: ' + this._packetHeader.number + ' ' + + 'Expected: ' + this._nextPacketNumber + ); + + err.code = 'PROTOCOL_PACKETS_OUT_OF_ORDER'; + err.fatal = true; - this._onError(err); + this._onError(err); + } } this.incrementPacketNumber();