Replies: 1 comment 1 reply
-
|
Thanks for the detailed description. This appears to be a bug in the webflux implementation. We do not use webflux stack internally and hence may have just avoided discovering this issue. We'll fix this in an upcoming release in the next month or so, but I don't think we can prioritize a fix immediately. Feel free to open a PR of this is blocking you currently. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
The sentence from the documentation of
graphql-wshas put me in a difficulty in my project.I think it means that should use 'unique-operation-id' to determine whether to send the 4409 event.
And I have examined the source code of
graphql-dgs-spring-webflux-autoconfigure.com.netflix.graphql.dgs.webflux.handlers.WebsocketGraphQLTransportWSProtocolHandlerandgraphql-dgs-subscriptions-websockets.com.netflix.graphql.dgs.subscriptions.websockets.WebsocketGraphQLTransportWSProtocolHandlerrespectively. I found that the places where the decision to send the 4409 event is made have some slight differences.In graphql-dgs-subscriptions-websockets, it seems that the decision to send the 4409 event(at line 128) is indeed made using the 'unique-operation-id' to determine whether to send the event.
However, in graphql-dgs-spring-webflux-autoconfigure, it seems that the same decision(at line 92) is made using the WebSocket session ID to determine whether to send the event.
I would like to know why there is such a difference between the two.
In my project, I am using 'graphql-dgs-webflux-starter', so naturally my 'WebsocketGraphQLTransportWSProtocolHandler' is using 'graphql-dgs-spring-webflux-autoconfigure'. And in my schema, there are two or more entry points for subscriptions.
If the frontend uses two or more entry points simultaneously, it will receive the 4409 event, even if only one WebSocket connection is established.
Is there any way to prevent receiving the 4409 event and use WebSocket normally to receive data?
Beta Was this translation helpful? Give feedback.
All reactions