diff --git a/websocket-sharp/Ext.cs b/websocket-sharp/Ext.cs index 36f521b7..39e34613 100644 --- a/websocket-sharp/Ext.cs +++ b/websocket-sharp/Ext.cs @@ -702,6 +702,7 @@ namespace WebSocketSharp { var dest = new MemoryStream (); var buff = new byte[bufferLength]; + var retry = 0; Action 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); }