Skip to content

Commit 174e394

Browse files
authored
[dotnet] Send data over cdp consecutively (#12666)
Send data over cdp consecutively
1 parent d670a70 commit 174e394

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

dotnet/src/webdriver/DevTools/WebSocketConnection.cs

+12-1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class WebSocketConnection
3737
private Task dataReceiveTask;
3838
private bool isActive = false;
3939
private ClientWebSocket client = new ClientWebSocket();
40+
private readonly SemaphoreSlim sendMethodSemaphore = new SemaphoreSlim(1, 1);
4041

4142
/// <summary>
4243
/// Initializes a new instance of the <see cref="WebSocketConnection" /> class.
@@ -159,7 +160,17 @@ public virtual async Task SendData(string data)
159160
{
160161
ArraySegment<byte> messageBuffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(data));
161162
this.Log($"SEND >>> {data}");
162-
await this.client.SendAsync(messageBuffer, WebSocketMessageType.Text, endOfMessage: true, CancellationToken.None);
163+
164+
await sendMethodSemaphore.WaitAsync().ConfigureAwait(false);
165+
166+
try
167+
{
168+
await this.client.SendAsync(messageBuffer, WebSocketMessageType.Text, endOfMessage: true, CancellationToken.None);
169+
}
170+
finally
171+
{
172+
sendMethodSemaphore.Release();
173+
}
163174
}
164175

165176
/// <summary>

0 commit comments

Comments
 (0)