You can check docs here:
https://the-guild.dev/graphql/yoga-server/docs/features/subscriptions
There are 2 problems.
In http requests there are required query
Correct example:
curl -N -H "accept:text/event-stream" http://localhost:4000/graphql?query=subscription%20%7B%0A%20%20countdown%28from%3A%205%29%0A%7D
but in your code there is only /graphql
. So server event does not know what do you asking.
You should send request with disabled buffer
First option in curl is -N
. Reading man curl
you can find that it means no-buffer
.
-N, --no-buffer
Disables the buffering of the output stream. In normal work situations, curl will use a standard buffered output stream that will have the effect that it will output the data in chunks, not necessarily exactly
when the data arrives. Using this option will disable that buffering.
Note that this is the negated option name documented. You can thus use --buffer to enforce the buffering.
Example:
curl --no-buffer https://example.com
See also -#, --progress-bar.
Although this option works in curl
What is the LIBCURL equivalent to --N/--no-buffer?
it is not available in axios
.
Why it will not work?
In curl
you can send request and receive responses before closing connection. In axios you have to close connection to get response.
I recommend you use other methods described in first link. Read about Apollo Client, Urql and Relay and chose something. They are designed to help you, decrease amount of your code and simplify error handling.