使用GraphQLClient包将C#客户端与AWS AppSync订阅和IAM身份验证集成

使用GraphQLClient包将C#客户端与AWS AppSync订阅和IAM身份验证集成,c#,.net,graphql,aws-appsync,C#,.net,Graphql,Aws Appsync,graphQLClient包: 通过GraphQL客户端包集成查询和突变非常简单。因为我能够通过定制的HttpMessageHandler添加身份验证,然后我就能够在发送请求之前使用AWSV4Signer对请求进行签名。我目前在订阅方面面临的问题是,没有为通过订阅发送的请求调用此消息处理程序。这很有意义,因为它使用WebSocket而不是Http。我的问题是,我是否可以使用HttpMessageHandler之类的东西,但用于web套接字,以便对请求进行签名(更一般地说,在发送请求之前对其进行编

graphQLClient包:

通过GraphQL客户端包集成查询和突变非常简单。因为我能够通过定制的HttpMessageHandler添加身份验证,然后我就能够在发送请求之前使用AWSV4Signer对请求进行签名。我目前在订阅方面面临的问题是,没有为通过订阅发送的请求调用此消息处理程序。这很有意义,因为它使用WebSocket而不是Http。我的问题是,我是否可以使用HttpMessageHandler之类的东西,但用于web套接字,以便对请求进行签名(更一般地说,在发送请求之前对其进行编辑),或者我只需要从头开始构建并发送web套接字请求,如本文所述:

用于发送变异或查询的代码:

var graphQlRequest = new GraphQLRequest
        {
            Query = mutation
        };

        var graphQlClient = new GraphQLHttpClient(new GraphQLHttpClientOptions
        {
            EndPoint = new Uri(endpoint),
            HttpMessageHandler = new AWSMessageHandler(accessKey, secretKey)
        },
        new NewtonsoftJsonSerializer());
        graphQlClient.HttpClient.DefaultRequestHeaders.Add("x-amz-security-token", sessionToken);

        var respoonse = await graphQlClient.SendMutationAsync<T>(graphQlRequest);
var graphQlRequest=新的graphQlRequest
{
查询=变异
};
var graphQlClient=新GraphQLHttpClient(新GraphQLHttpClientOptions
{
端点=新Uri(端点),
HttpMessageHandler=新的AWSMessageHandler(accessKey、secretKey)
},
新的NewtonsoftJsonSerializer());
graphQlClient.HttpClient.DefaultRequestHeaders.Add(“x-amz-security-token”,sessionToken);
var respoonse=wait graphQlClient.SendMutationAsync(graphQlRequest);
AWSMessageHandler是我构建的自定义类,它只是在发送HttpRequestMessage之前对其进行签名