From 7938fa7548e1ada88bc82880578b041903c1a9a8 Mon Sep 17 00:00:00 2001 From: Minsu Lee Date: Fri, 8 Oct 2021 15:03:59 +0900 Subject: [PATCH] feat: implement GraphQL over WebSocket Protocol --- .idea/codeStyles/Project.xml | 3 + .../ui-example/package-lock.json | 21586 +++++++++++++++- .../ui-example/package.json | 3 +- .../ui-example/src/index.tsx | 13 +- .../build.gradle.kts | 1 + .../DgsWebFluxAutoConfiguration.kt | 4 +- .../DgsWebfluxConfigurationProperties.kt | 18 + .../handlers/DgsReactiveWebsocketHandler.kt | 164 +- ...socketGraphQLTransportWSProtocolHandler.kt | 193 + .../WebsocketGraphQLWSProtocolHandler.kt | 164 + .../WebsocketReactiveProtocolHandler.kt | 24 + ...cketSubscriptionsGraphQLTransportWSTest.kt | 369 + ...=> WebsocketSubscriptionsGraphQLWSTest.kt} | 34 +- .../build.gradle.kts | 2 + .../graphql/types/subscription/Protocol.kt | 2 + .../subscription/websockets/CloseCode.kt | 20 + .../types/subscription/websockets/Message.kt | 80 + .../websockets/DgsWebSocketAutoConfig.kt | 4 +- .../DgsWebSocketConfigurationProperties.kt | 9 +- .../dgs/subscriptions/websockets/Context.kt | 66 + .../websockets/DgsHandshakeInterceptor.kt | 2 + .../websockets/DgsWebSocketHandler.kt | 150 +- ...socketGraphQLTransportWSProtocolHandler.kt | 222 + .../WebsocketGraphQLWSProtocolHandler.kt | 166 + ...etGraphQLTransportWSProtocolHandlerTest.kt | 196 + ... WebsocketGraphQLWSProtocolHandlerTest.kt} | 6 +- 26 files changed, 23126 insertions(+), 375 deletions(-) create mode 100644 graphql-dgs-spring-webflux-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/webflux/handlers/WebsocketGraphQLTransportWSProtocolHandler.kt create mode 100644 graphql-dgs-spring-webflux-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/webflux/handlers/WebsocketGraphQLWSProtocolHandler.kt create mode 100644 graphql-dgs-spring-webflux-autoconfigure/src/main/kotlin/com/netflix/graphql/dgs/webflux/handlers/WebsocketReactiveProtocolHandler.kt create mode 100644 graphql-dgs-spring-webflux-autoconfigure/src/test/kotlin/com/netflix/graphql/dgs/webflux/autoconfiguration/WebsocketSubscriptionsGraphQLTransportWSTest.kt rename graphql-dgs-spring-webflux-autoconfigure/src/test/kotlin/com/netflix/graphql/dgs/webflux/autoconfiguration/{WebsocketSubscriptionsTest.kt => WebsocketSubscriptionsGraphQLWSTest.kt} (88%) create mode 100644 graphql-dgs-subscription-types/src/main/kotlin/com/netflix/graphql/types/subscription/websockets/CloseCode.kt create mode 100644 graphql-dgs-subscription-types/src/main/kotlin/com/netflix/graphql/types/subscription/websockets/Message.kt create mode 100644 graphql-dgs-subscriptions-websockets/src/main/kotlin/com/netflix/graphql/dgs/subscriptions/websockets/Context.kt create mode 100644 graphql-dgs-subscriptions-websockets/src/main/kotlin/com/netflix/graphql/dgs/subscriptions/websockets/WebsocketGraphQLTransportWSProtocolHandler.kt create mode 100644 graphql-dgs-subscriptions-websockets/src/main/kotlin/com/netflix/graphql/dgs/subscriptions/websockets/WebsocketGraphQLWSProtocolHandler.kt create mode 100644 graphql-dgs-subscriptions-websockets/src/test/kotlin/com/netflix/graphql/dgs/subscriptions/websockets/WebsocketGraphQLTransportWSProtocolHandlerTest.kt rename graphql-dgs-subscriptions-websockets/src/test/kotlin/com/netflix/graphql/dgs/subscriptions/websockets/{DgsWebsocketHandlerTest.kt => WebsocketGraphQLWSProtocolHandlerTest.kt} (98%) diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 85697dce7..6d5fcb970 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -12,6 +12,9 @@