Skip to content

Commit c96e8e7

Browse files
committed
target netcoreapp3.1 and net461 for GraphQL.Client.Http and remove unnecessary dependencies there
1 parent c3b4d15 commit c96e8e7

File tree

5 files changed

+34
-12
lines changed

5 files changed

+34
-12
lines changed

root.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<GenerateDocumentationFile>True</GenerateDocumentationFile>
99
<LangVersion>8.0</LangVersion>
1010
<NeutralLanguage>en-US</NeutralLanguage>
11-
<NoWarn>CS0618;CS1591;CS1701;CS8618;NU5048;NU5105;NU5125</NoWarn>
11+
<NoWarn>CS0618;CS1591;CS1701;CS8618;CS8632;NU5048;NU5105;NU5125</NoWarn>
1212
<Nullable>annotations</Nullable>
1313
<PackageIcon>icon.png</PackageIcon>
1414
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>

src/GraphQL.Client.Http/GraphQL.Client.Http.csproj

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,32 @@
33
<Import Project="../src.props" />
44

55
<PropertyGroup>
6-
<TargetFramework>netstandard2.0</TargetFramework>
6+
<TargetFrameworks>netstandard2.0;netcoreapp3.1;net461</TargetFrameworks>
77
</PropertyGroup>
88

99
<ItemGroup>
1010
<ProjectReference Include="..\GraphQL.Client\GraphQL.Client.csproj" />
1111
</ItemGroup>
1212

13+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
14+
<DefineConstants>NETSTANDARD</DefineConstants>
15+
</PropertyGroup>
16+
17+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net461'">
18+
<DefineConstants>NETFRAMEWORK</DefineConstants>
19+
</PropertyGroup>
20+
21+
1322
<ItemGroup>
1423
<PackageReference Include="Dahomey.Json" Version="1.6.0" />
15-
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
16-
<PackageReference Include="System.Net.Http" Version="4.3.4" />
17-
<PackageReference Include="System.Net.WebSockets.Client" Version="4.3.2" />
24+
</ItemGroup>
25+
26+
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' or '$(TargetFramework)' == 'net461'">
1827
<PackageReference Include="System.Text.Json" Version="4.7.0" />
1928
</ItemGroup>
2029

30+
<ItemGroup Condition=" '$(TargetFramework)' == 'net461'">
31+
<PackageReference Include="System.Net.WebSockets.Client.Managed" Version="1.0.22" />
32+
</ItemGroup>
33+
2134
</Project>

src/GraphQL.Client.Http/GraphQLHttpClientOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,6 @@ public class GraphQLHttpClientOptions {
5252
/// Request preprocessing function. Can be used i.e. to inject authorization info into a GraphQL request payload.
5353
/// </summary>
5454
public Func<GraphQLRequest, GraphQLHttpClient, Task<GraphQLRequest>> PreprocessRequest { get; set; } = (request, client) => Task.FromResult(request);
55+
5556
}
5657
}

src/GraphQL.Client.Http/Websocket/GraphQLHttpWebSocket.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ internal class GraphQLHttpWebSocket : IDisposable {
2424

2525
public WebSocketState WebSocketState => clientWebSocket?.State ?? WebSocketState.None;
2626

27+
#if NETFRAMEWORK
2728
private WebSocket clientWebSocket = null;
29+
#else
30+
private ClientWebSocket clientWebSocket = null;
31+
#endif
2832
private int _connectionAttempt = 0;
2933

3034
public GraphQLHttpWebSocket(Uri webSocketUri, GraphQLHttpClientOptions options) {
@@ -71,7 +75,7 @@ await this.clientWebSocket.SendAsync(
7175

7276
private readonly object _initializeLock = new object();
7377

74-
#region Private Methods
78+
#region Private Methods
7579

7680
private Task _backOff() {
7781
_connectionAttempt++;
@@ -103,6 +107,7 @@ public Task InitializeWebSocket() {
103107
//_responseStreamConnection?.Dispose();
104108
clientWebSocket?.Dispose();
105109

110+
#if NETFRAMEWORK
106111
// fix websocket not supported on win 7 using
107112
// https://github.com/PingmanTools/System.Net.WebSockets.Client.Managed
108113
clientWebSocket = SystemClientWebSocket.CreateClientWebSocket();
@@ -120,7 +125,12 @@ public Task InitializeWebSocket() {
120125
default:
121126
throw new NotSupportedException($"unknown websocket type {clientWebSocket.GetType().Name}");
122127
}
123-
128+
#else
129+
clientWebSocket = new ClientWebSocket();
130+
clientWebSocket.Options.AddSubProtocol("graphql-ws");
131+
clientWebSocket.Options.ClientCertificates = ((HttpClientHandler)_options.HttpMessageHandler).ClientCertificates;
132+
clientWebSocket.Options.UseDefaultCredentials = ((HttpClientHandler)_options.HttpMessageHandler).UseDefaultCredentials;
133+
#endif
124134
return InitializeWebSocketTask = _connectAsync(_cancellationTokenSource.Token);
125135
}
126136
}
@@ -247,9 +257,9 @@ private async Task _closeAsync(CancellationToken cancellationToken = default) {
247257
await this.clientWebSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", cancellationToken).ConfigureAwait(false);
248258
}
249259

250-
#endregion
260+
#endregion
251261

252-
#region IDisposable
262+
#region IDisposable
253263

254264
private Task _disposed;
255265
private object _disposedLocker = new object();
@@ -269,6 +279,6 @@ private async Task DisposeAsync() {
269279
_cancellationTokenSource.Dispose();
270280
Debug.WriteLine($"websocket {clientWebSocket.GetHashCode()} disposed");
271281
}
272-
#endregion
282+
#endregion
273283
}
274284
}

src/GraphQL.Client/GraphQL.Client.csproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
</ItemGroup>
1313

1414
<ItemGroup>
15-
<PackageReference Include="System.Net.WebSockets.Client" Version="4.3.2" />
16-
<PackageReference Include="System.Net.WebSockets.Client.Managed" Version="1.0.22" />
1715
<PackageReference Include="System.Reactive" Version="4.1.2" />
1816
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
1917
</ItemGroup>

0 commit comments

Comments
 (0)