From edcd801c8cfe2a80771c7429da6be0f1fab7c092 Mon Sep 17 00:00:00 2001 From: Andreas Marek Date: Sun, 17 Jan 2021 09:38:40 +1100 Subject: [PATCH] id is not required on every message (notably init) --- .../src/main/resources/static/index.html | 4 ++-- .../webflux/GraphQLWebSocketHandler.java | 23 +++++++++---------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/samples/webflux-websocket/src/main/resources/static/index.html b/samples/webflux-websocket/src/main/resources/static/index.html index f9654872..4ad1ff6f 100644 --- a/samples/webflux-websocket/src/main/resources/static/index.html +++ b/samples/webflux-websocket/src/main/resources/static/index.html @@ -32,8 +32,8 @@ // subscription (async () => { - const onNext = () => { - console.log("Subscription data") + const onNext = (data) => { + console.log("Subscription data:", data); }; await new Promise((resolve, reject) => { diff --git a/spring-graphql-web/src/main/java/org/springframework/graphql/webflux/GraphQLWebSocketHandler.java b/spring-graphql-web/src/main/java/org/springframework/graphql/webflux/GraphQLWebSocketHandler.java index 1093f8ca..ca89adaa 100644 --- a/spring-graphql-web/src/main/java/org/springframework/graphql/webflux/GraphQLWebSocketHandler.java +++ b/spring-graphql-web/src/main/java/org/springframework/graphql/webflux/GraphQLWebSocketHandler.java @@ -15,14 +15,6 @@ */ package org.springframework.graphql.webflux; -import java.time.Duration; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicBoolean; - import graphql.ErrorType; import graphql.ExecutionResult; import graphql.GraphQL; @@ -31,9 +23,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.reactivestreams.Publisher; import org.reactivestreams.Subscription; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ResolvableType; import org.springframework.core.codec.Decoder; @@ -57,6 +46,16 @@ import org.springframework.web.reactive.socket.HandshakeInfo; import org.springframework.web.reactive.socket.WebSocketHandler; import org.springframework.web.reactive.socket.WebSocketMessage; import org.springframework.web.reactive.socket.WebSocketSession; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.time.Duration; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicBoolean; /** * WebSocketHandler for GraphQL based on @@ -137,7 +136,7 @@ public class GraphQLWebSocketHandler implements WebSocketHandler { Map map = decode(message); String id = (String) map.get("id"); MessageType messageType = MessageType.resolve((String) map.get("type")); - if (id == null || messageType == null) { + if (messageType == null) { return GraphQLStatus.invalidMessage(session); } switch (messageType) {