[Modify] Use first fragment to determine if the fragmented data are compressed

This commit is contained in:
sta 2015-12-11 15:16:01 +09:00
parent 7d52b5492d
commit 07addc4eee

View File

@ -80,6 +80,7 @@ namespace WebSocketSharp
private bool _enableRedirection;
private AutoResetEvent _exitReceiving;
private string _extensions;
private bool _fcompressed;
private Opcode _fopcode;
private object _forConn;
private object _forMessageEventQueue;
@ -1116,6 +1117,7 @@ namespace WebSocketSharp
return true;
_fopcode = frame.Opcode;
_fcompressed = frame.IsCompressed;
_fragmentsBuffer = new MemoryStream ();
_inContinuation = true;
}
@ -1123,7 +1125,7 @@ namespace WebSocketSharp
_fragmentsBuffer.WriteBytes (frame.PayloadData.ApplicationData, 1024);
if (frame.IsFinal) {
using (_fragmentsBuffer) {
var data = _compression != CompressionMethod.None
var data = _fcompressed
? _fragmentsBuffer.DecompressToArray (_compression)
: _fragmentsBuffer.ToArray ();