Package Exports
- subscriptions-transport-ws
 - subscriptions-transport-ws/dist/client
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (subscriptions-transport-ws) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
subscriptions-transport-ws
(Work in progress!)
A GraphQL websocket server and client to facilitate GraphQL subscriptions.
See GitHunt-API and GitHunt-React for an example server and client integration.
Client
Constructor(url, options)
url: string: url that the client will connect tooptions?: Object: optional object to modify default client behaviortimeout: number: how long the client should wait in ms for a subscription to be started (default 5000 ms)
Methods
subscribe(options, handler) => id
options: {SubscriptionOptions}query: string: GraphQL subscriptionvariables: Object: GraphQL subscription variablesoperationName: string: operation name of the subscription
handler: (errors: Error[], result?: any) => void: function to handle any errors and results from the subscription response
unsubscribe(id) => void
id: string: the subscription ID of the subscription to unsubscribe from
Server
Constructor(options, httpServer)
options: {ServerOptions}subscriptionManager: SubscriptionManager: GraphQL subscription manageronSubscribe?: (message: SubscribeMessage, params: SubscriptionOptions, webSocketRequest: WebSocketRequest): optional method to create custom params that will be used when resolving this subscriptionkeepAlive?: number: optional interval in ms to sendSUBSCRIPTION_KEEPALIVEmessages to all clients
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
SUBSCRIPTION_KEEPALIVE
Server message sent periodically to keep the client connection alive.