private static async Task Subscribe(WebSocket socket, string clientId, IGraphQLSchema schema, WsInputObject input) { var data = (IDictionary <string, object>)schema.Execute(input.Query, null, null, clientId, input.Id.Value); if (data.ContainsKey("errors")) { await SendResponseToExceptions(socket, input.Id.Value, data["errors"]); } else { var dataString = JsonConvert.SerializeObject(new { id = input.Id, type = "subscription_success" }); await SendResponse(socket, dataString); } }
public async Task Handle(WebSocket socket, string clientId, IGraphQLSchema schema, WsInputObject input) { var dataString = schema == null ? CreateFailDataString(new GraphQLException("The server schema is invalid or does not exist.")) : CreateSuccessDataString(); var resultBuffer = System.Text.Encoding.UTF8.GetBytes(dataString); await socket.SendAsync( new ArraySegment <byte>(resultBuffer), WebSocketMessageType.Text, true, CancellationToken.None); }
public async Task Handle(WebSocket socket, string clientId, IGraphQLSchema schema, WsInputObject input) { await Subscribe(socket, clientId, schema, input); }
public async Task Handle(WebSocket socket, string clientId, IGraphQLSchema schema, WsInputObject input) { await Task.Yield(); if (input.Id.HasValue) { schema.Unsubscribe(clientId, input.Id.Value); } }