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);
            }
        }
Пример #2
0
        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);
            }
        }