private ValueTask ProcessAsync( ReadOnlySequence <byte> slice, CancellationToken cancellationToken) { try { GraphQLWebSocketMessage message = GraphQLWebSocketMessageParser.Parse(slice); if (message.Id is { } id) { switch (message.Type) { case GraphQLWebSocketMessageType.Data: return(Notify( id, new DataDocumentOperationMessage <JsonDocument>(message.Payload), cancellationToken)); case GraphQLWebSocketMessageType.Complete: return(Notify( id, CompleteOperationMessage.Default, cancellationToken)); case GraphQLWebSocketMessageType.Error: return(Notify( id, ErrorOperationMessage.UnexpectedServerError, cancellationToken)); case GraphQLWebSocketMessageType.ConnectionError: return(Notify( id, ErrorOperationMessage.ConnectionInitializationError, cancellationToken)); default: return(CloseSocketOnProtocolError( "Invalid message type received: " + message.Type, cancellationToken)); } } } catch (Exception ex) { return(CloseSocketOnProtocolError( "Invalid message received: " + ex.Message, cancellationToken)); } return(default);
private ValueTask ProcessAsync( ReadOnlySequence <byte> slice, CancellationToken cancellationToken) { try { GraphQLWebSocketMessage message = GraphQLWebSocketMessageParser.Parse(slice); if (message.Id is { } id) { return(message.Type switch { GraphQLWebSocketMessageType.Data => Notify( id, new DataDocumentOperationMessage <JsonDocument>(message.Payload), cancellationToken), GraphQLWebSocketMessageType.Complete => Notify( id, CompleteOperationMessage.Default, cancellationToken), GraphQLWebSocketMessageType.Error => Notify( id, ErrorOperationMessage.UnexpectedServerError, cancellationToken), GraphQLWebSocketMessageType.ConnectionError => Notify( id, ErrorOperationMessage.ConnectionInitializationError, cancellationToken), _ => CloseSocketOnProtocolError( "Invalid message type received: " + message.Type, cancellationToken) }); }