Subscriptions
Detailed Explanation of Executor.ExecuteSubscription
Method
The ExecuteSubscription
method is a static method that is used to execute a subscription operation. It takes a QueryContext
as a parameter and returns a Task
. The ExecuteSubscription
method is defined as follows:
public static async Task ExecuteSubscription(QueryContext context)
{
context.RequestCancelled.ThrowIfCancellationRequested();
IAsyncEnumerable<object?> sourceStream = await CreateSourceEventStream(
context,
context.RequestCancelled);
IAsyncEnumerable<ExecutionResult> responseStream = MapSourceToResponseEventStream(
context,
sourceStream,
context.RequestCancelled);
context.Response = responseStream;
}
Example of Using Executor.ExecuteSubscription
Method
The following example shows how to use the ExecuteSubscription
method to execute a GraphQL subscription:
var schema = new Schema();
var executor = new Executor(schema);
var request = new GraphQLRequest
{
Query = new ExecutableDocument
{
Definitions = new List<IDefinition>
{
new OperationDefinition
{
Operation = OperationType.Subscription,
SelectionSet = new SelectionSet
{
Selections = new List<ISelection>
{
new FieldSelection
{
Name = new Name("messageAdded")
}
}
}
}
}
}
};
var queryContext = executor.BuildQueryContextAsync(request);
await Executor.ExecuteSubscription(queryContext);
await foreach (var result in queryContext.Response)
{
Console.WriteLine(result.Data);
}