[Modify] Use first fragment to determine if the fragmented data are compressed
This commit is contained in:
parent
7d52b5492d
commit
07addc4eee
@ -80,6 +80,7 @@ namespace WebSocketSharp
|
|||||||
private bool _enableRedirection;
|
private bool _enableRedirection;
|
||||||
private AutoResetEvent _exitReceiving;
|
private AutoResetEvent _exitReceiving;
|
||||||
private string _extensions;
|
private string _extensions;
|
||||||
|
private bool _fcompressed;
|
||||||
private Opcode _fopcode;
|
private Opcode _fopcode;
|
||||||
private object _forConn;
|
private object _forConn;
|
||||||
private object _forMessageEventQueue;
|
private object _forMessageEventQueue;
|
||||||
@ -1116,6 +1117,7 @@ namespace WebSocketSharp
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
_fopcode = frame.Opcode;
|
_fopcode = frame.Opcode;
|
||||||
|
_fcompressed = frame.IsCompressed;
|
||||||
_fragmentsBuffer = new MemoryStream ();
|
_fragmentsBuffer = new MemoryStream ();
|
||||||
_inContinuation = true;
|
_inContinuation = true;
|
||||||
}
|
}
|
||||||
@ -1123,7 +1125,7 @@ namespace WebSocketSharp
|
|||||||
_fragmentsBuffer.WriteBytes (frame.PayloadData.ApplicationData, 1024);
|
_fragmentsBuffer.WriteBytes (frame.PayloadData.ApplicationData, 1024);
|
||||||
if (frame.IsFinal) {
|
if (frame.IsFinal) {
|
||||||
using (_fragmentsBuffer) {
|
using (_fragmentsBuffer) {
|
||||||
var data = _compression != CompressionMethod.None
|
var data = _fcompressed
|
||||||
? _fragmentsBuffer.DecompressToArray (_compression)
|
? _fragmentsBuffer.DecompressToArray (_compression)
|
||||||
: _fragmentsBuffer.ToArray ();
|
: _fragmentsBuffer.ToArray ();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user