Description
See #11 for previous discussion. The UI Server is a Tornado project, that inherits classes from JupyterHub Tornado project (for things like authentication).
In #11 and #13 it's getting an extra layer with Graphene, an open source library for Python that implements GraphQL.
However, GraphQL subscriptions require the base layer of Graphene for GraphQL, plus an extra library to handle the query subscription (which is basically a mechanism for sending to clients the output of a query whenever if changed), the normal way being via WebSockets.
WebSockets are supported by Tornado out of the box. What we are missing, is actually the extra layer of integration with Tornado. That is done via the Graphele graphql-ws
project, which has one Pull Request to add support to tornado still pending.
Once that pull request is merged, we can add that library in our setup.py
, and fix this issue. An alternative in case we need that before the pull request is merged, is simply fork it and use our own until it is merged.