From e2ab760ca680f08cb762ee9c3468c52125e65233 Mon Sep 17 00:00:00 2001 From: sta Date: Wed, 22 Jun 2016 14:41:33 +0900 Subject: [PATCH] [Modify] Retry the read if it returns zero Experimental modification to avoid 'cannot be read from the stream'. --- websocket-sharp/Ext.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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); }