@@ -55,7 +55,7 @@ public GraphQLHttpClient(Uri endPoint, IGraphQLWebsocketJsonSerializer serialize
55
55
public GraphQLHttpClient ( Action < GraphQLHttpClientOptions > configure , IGraphQLWebsocketJsonSerializer serializer ) : this ( configure . New ( ) , serializer ) { }
56
56
57
57
public GraphQLHttpClient ( GraphQLHttpClientOptions options , IGraphQLWebsocketJsonSerializer serializer ) : this ( options , serializer , new HttpClient ( options . HttpMessageHandler ) ) { }
58
-
58
+
59
59
public GraphQLHttpClient ( GraphQLHttpClientOptions options , IGraphQLWebsocketJsonSerializer serializer , HttpClient httpClient )
60
60
{
61
61
Options = options ?? throw new ArgumentNullException ( nameof ( options ) ) ;
@@ -65,7 +65,7 @@ public GraphQLHttpClient(GraphQLHttpClientOptions options, IGraphQLWebsocketJson
65
65
if ( ! HttpClient . DefaultRequestHeaders . UserAgent . Any ( ) )
66
66
HttpClient . DefaultRequestHeaders . UserAgent . Add ( new ProductInfoHeaderValue ( GetType ( ) . Assembly . GetName ( ) . Name , GetType ( ) . Assembly . GetName ( ) . Version . ToString ( ) ) ) ;
67
67
68
- _lazyHttpWebSocket = new Lazy < GraphQLHttpWebSocket > ( ( ) => new GraphQLHttpWebSocket ( GetWebSocketUri ( ) , this ) ) ;
68
+ _lazyHttpWebSocket = new Lazy < GraphQLHttpWebSocket > ( ( ) => new GraphQLHttpWebSocket ( Options . EndPoint . GetWebSocketUri ( ) , this ) ) ;
69
69
}
70
70
71
71
#endregion
@@ -75,7 +75,7 @@ public GraphQLHttpClient(GraphQLHttpClientOptions options, IGraphQLWebsocketJson
75
75
/// <inheritdoc />
76
76
public async Task < GraphQLResponse < TResponse > > SendQueryAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default )
77
77
{
78
- if ( Options . UseWebSocketForQueriesAndMutations )
78
+ if ( Options . UseWebSocketForQueriesAndMutations || Options . EndPoint . HasWebSocketScheme ( ) )
79
79
return await _graphQlHttpWebSocket . SendRequest < TResponse > ( request , cancellationToken ) ;
80
80
81
81
return await SendHttpRequestAsync < TResponse > ( request , cancellationToken ) ;
@@ -132,7 +132,7 @@ public IObservable<GraphQLResponse<TResponse>> CreateSubscriptionStream<TRespons
132
132
private async Task < GraphQLHttpResponse < TResponse > > SendHttpRequestAsync < TResponse > ( GraphQLRequest request , CancellationToken cancellationToken = default )
133
133
{
134
134
var preprocessedRequest = await Options . PreprocessRequest ( request , this ) ;
135
-
135
+
136
136
using var httpRequestMessage = preprocessedRequest . ToHttpRequestMessage ( Options , JsonSerializer ) ;
137
137
using var httpResponseMessage = await HttpClient . SendAsync ( httpRequestMessage , HttpCompletionOption . ResponseHeadersRead , cancellationToken ) ;
138
138
@@ -152,13 +152,6 @@ private async Task<GraphQLHttpResponse<TResponse>> SendHttpRequestAsync<TRespons
152
152
153
153
throw new GraphQLHttpRequestException ( httpResponseMessage . StatusCode , httpResponseMessage . Headers , content ) ;
154
154
}
155
-
156
- private Uri GetWebSocketUri ( )
157
- {
158
- string webSocketSchema = Options . EndPoint . Scheme == "https" ? "wss" : "ws" ;
159
- return new Uri ( $ "{ webSocketSchema } ://{ Options . EndPoint . Host } :{ Options . EndPoint . Port } { Options . EndPoint . AbsolutePath } ") ;
160
- }
161
-
162
155
#endregion
163
156
164
157
#region IDisposable
0 commit comments