subscriptions-transport-ws-async
v0.2.11
Published
A websocket transport for GraphQL subscriptions
Downloads
4
Readme
test-websocket-server
(Work in progress!) A GraphQL websocket server to facilitate GraphQL subscriptions. See the websocket-integration branch on GitHunt for example code.
Client
Constructor
url: string
: url that the client will connect to
Methods
subscribe(options, handler)
options: {SubscriptionOptions}
query: string
: GraphQL subscriptionvariables: Object
: GraphQL subscription variablesoperationName: string
: operation name of the subscription
handler: (error: Object, data: Object) => void
: function to handle any errors and results from the subscription response
unsubscribe(id)
id: string
: the subscription ID of the subscription to unsubscribe from
Server
Constructor
options: {ServerOptions}
schema: GraphQLSchema
: the schema for the datatriggerGenerator: (name: string, args: Object, context?: Object) => Array<{name: string, filter: Function}>
: function which, given the name ofa subscription, its arguments, and its operation name, will return a list of actions that trigger it, stored by name and a filter functioncontextValue?: any
: contextValue to be passed into graphqlrootValue?: any
: rootValue to be passed into graphqlformatResponse?: (GraphQLResult) => Object
: function to format GraphQL response before sending it to clientvalidationRules?: Array<any>
: array of addition rules to run when validating GraphQL subscription
Methods
triggerAction(triggerObject)
triggerObject
: object with information on an actionname: string
: name of the actionrootValue: any
: rootValue to be passed into the GraphQL call of any subscription that is called as a result of the actioncontextValue?: any
: contextValue to be passed into the GraphQL call of any subscription that is called as a result of the action
Client-server messages
Each message has a type, as well as associated fields depending on the message type.
Client -> Server
SUBSCRIPTION_START
Client sends this message to start a subscription for a query.
query: GraphQLDocument
: GraphQL subscriptionvariables: Object
: GraphQL subscription variablesoperationName: string
: operation name of the subscriptionid: string
: subscription ID
SUBSCRIPTION_END
Client sends this message to end a subscription.
id: string
: subscription ID of the subscription to be terminated
Server -> Client
SUBSCRIPTION_SUCCESS
The server sends this message to confirm that it has validated the subscription query and is subscribed to the triggers.
id: string
: ID of the subscription that was successfully set up
SUBSCRIPTION_FAIL
Server sends this message upon failing to register a subscription. It may also send this message at any point during the subscription to notify the client the the subscription has been stopped.
errors: Array<Object>
: array of errors attributed to the subscription failing on the serverid: string
: subscription ID of the subscription that failed on the server
SUBSCRIPTION_DATA
GraphQL result sent periodically from server to client according to subscription.
payload: GraphQLResult
: GraphQL result from running the subscriptionid: string
: subscription ID