Try Apollo Studio

Subscriptions Link

Execute subscriptions (or other operations) over WebSocket with the graphql-ws library

We recommend reading Apollo Link overview before learning about individual links.

The GraphQLWsLink is a terminating link that's used most commonly with GraphQL subscriptions (which usually communicate over WebSocket), although you can send queries and mutations over WebSocket as well.

GraphQLWsLink requires the graphql-ws library. Install it in your project like so:

npm install graphql-ws

Note: This link works with the newer graphql-ws library. If your server uses the older subscriptions-transport-ws, you should use the WebSocketLink link from @apollo/client/link/ws instead.


import { GraphQLWsLink } from "@apollo/client/link/subscriptions";
import { createClient } from "graphql-ws";
const link = new GraphQLWsLink(
url: "ws://localhost:3000/subscriptions",


The GraphQLWsLink constructor takes a single argument, which is a Client returned from the graphql-ws createClient function.

The createClient function can take many options, described in the graphql-ws docs for ClientOptions. The one required option is url, which is the URL (typically starting with ws:// or wss://, which are the equivalents of http:// and https:// respectively) to your WebSocket server. (Note that this differs from the older link's URL option, which is named uri instead of url.)


See Subscriptions.

Edit on GitHub
WebSocket (older protocol)