[Modify] Retry the read if it returns zero

Experimental modification to avoid 'cannot be read from the stream'.
This commit is contained in:
sta 2016-06-22 14:41:33 +09:00
parent 02be830741
commit e2ab760ca6

View File

@ -702,6 +702,7 @@ namespace WebSocketSharp
{
var dest = new MemoryStream ();
var buff = new byte[bufferLength];
var retry = 0;
Action<long> read = null;
read = len => {
@ -718,7 +719,10 @@ namespace WebSocketSharp
if (nread > 0)
dest.Write (buff, 0, nread);
if (nread == 0 || nread == len) {
if (nread == 0 && retry < _retry) {
retry++;
}
else if (nread == 0 || nread == len) {
if (completed != null) {
dest.Close ();
completed (dest.ToArray ());
@ -727,6 +731,9 @@ namespace WebSocketSharp
dest.Dispose ();
return;
}
else {
retry = 0;
}
read (len - nread);
}