Skip to content

Commit 8128352

Browse files
committed
Buffer will be managed in the connection class
1 parent d77c9f5 commit 8128352

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

lib/PuppeteerSharp/Connection.cs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,27 @@ private async Task<object> GetResponseAsync()
104104
return null;
105105
}
106106

107-
var result = await WebSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
107+
var endOfMessage = false;
108+
string response = string.Empty;
108109

109-
if (result.MessageType == WebSocketMessageType.Text)
110+
while (!endOfMessage)
111+
{
112+
var result = await WebSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
113+
endOfMessage = result.EndOfMessage;
114+
115+
if (result.MessageType == WebSocketMessageType.Text)
116+
{
117+
response += Encoding.UTF8.GetString(buffer, 0, result.Count);
118+
}
119+
else if (result.MessageType == WebSocketMessageType.Close)
120+
{
121+
OnClose();
122+
return null;
123+
}
124+
}
125+
126+
if (!string.IsNullOrEmpty(response))
110127
{
111-
var response = Encoding.UTF8.GetString(buffer, 0, result.Count);
112128
dynamic obj = JsonConvert.DeserializeObject(response);
113129
var objAsJObject = obj as JObject;
114130

@@ -155,12 +171,6 @@ private async Task<object> GetResponseAsync()
155171
}
156172
}
157173
}
158-
else if (result.MessageType == WebSocketMessageType.Close)
159-
{
160-
OnClose();
161-
return null;
162-
}
163-
164174
}
165175
}
166176
#endregion

0 commit comments

Comments
 (0)