subscriptions-transport-uws
v1.0.0
Published
A websocket transport for GraphQL subscriptions (based on uws)
Downloads
3
Maintainers
Readme
subscriptions-transport-uws
A GraphQL websocket server and client to facilitate GraphQL subscriptions. Based on subscriptions-transport-ws, built on µWS.
Importing
Importing the client and the server modules are done separately from the lib/
directory.
import Client from 'subscriptions-transport-uws/lib/Client';
import Server from 'subscriptions-transport-uws/lib/Server';
Importing the main module is not supported and will throw an error.
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_KEEPALIVE
messages 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.