|
|
|
@ -703,14 +703,16 @@ namespace WebSocketSharp
|
|
|
|
long length,
|
|
|
|
long length,
|
|
|
|
int bufferLength,
|
|
|
|
int bufferLength,
|
|
|
|
Action<byte[]> completed,
|
|
|
|
Action<byte[]> completed,
|
|
|
|
Action<Exception> error)
|
|
|
|
Action<Exception> error
|
|
|
|
|
|
|
|
)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var dest = new MemoryStream ();
|
|
|
|
var dest = new MemoryStream ();
|
|
|
|
var buff = new byte[bufferLength];
|
|
|
|
var buff = new byte[bufferLength];
|
|
|
|
var retry = 0;
|
|
|
|
var retry = 0;
|
|
|
|
|
|
|
|
|
|
|
|
Action<long> read = null;
|
|
|
|
Action<long> read = null;
|
|
|
|
read = len => {
|
|
|
|
read =
|
|
|
|
|
|
|
|
len => {
|
|
|
|
if (len < bufferLength)
|
|
|
|
if (len < bufferLength)
|
|
|
|
bufferLength = (int) len;
|
|
|
|
bufferLength = (int) len;
|
|
|
|
|
|
|
|
|
|
|
|
@ -726,8 +728,12 @@ namespace WebSocketSharp
|
|
|
|
|
|
|
|
|
|
|
|
if (nread == 0 && retry < _retry) {
|
|
|
|
if (nread == 0 && retry < _retry) {
|
|
|
|
retry++;
|
|
|
|
retry++;
|
|
|
|
|
|
|
|
read (len);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (nread == 0 || nread == len) {
|
|
|
|
|
|
|
|
|
|
|
|
if (nread == 0 || nread == len) {
|
|
|
|
if (completed != null) {
|
|
|
|
if (completed != null) {
|
|
|
|
dest.Close ();
|
|
|
|
dest.Close ();
|
|
|
|
completed (dest.ToArray ());
|
|
|
|
completed (dest.ToArray ());
|
|
|
|
@ -736,10 +742,8 @@ namespace WebSocketSharp
|
|
|
|
dest.Dispose ();
|
|
|
|
dest.Dispose ();
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
|
|
|
|
retry = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
retry = 0;
|
|
|
|
read (len - nread);
|
|
|
|
read (len - nread);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception ex) {
|
|
|
|
catch (Exception ex) {
|
|
|
|
@ -748,7 +752,8 @@ namespace WebSocketSharp
|
|
|
|
error (ex);
|
|
|
|
error (ex);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
null);
|
|
|
|
null
|
|
|
|
|
|
|
|
);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
|