View Source GraphQL Websocket Client

Build Coverage Status Module Version Hex Docs License Last Updated

A client for connecting with GraphQL over Websockets following the graphql-ws conventions.

installation

Installation

The package can be installed by adding graphql_ws_client to your list of dependencies in mix.exs. If you are using the default configuration, you will also need the jason and gun packages (or provide a custom GraphQLWSClient.Driver instead).

def deps do
  [
    {:graphql_ws_client, "~> 0.1"},
    {:gun, "~> 2.0"},
    {:jason, "~> 1.4"},
  ]
end

usage

Usage

client = GraphQLWSClient.start_link(url: "ws://localhost:4000/socket")

{:ok, subscription_id} = GraphQLWSClient.subscribe(
  client,
  "subscription PostCreated { ... }"
)

{:ok, _} = GraphQLWSClient.query(
  client,
  "mutation CreatePost { ... }"
)

receive do
  %GraphQLWSClient.Event{} = event ->
    IO.inspect(event)
end

GraphQLClient.close(client)

custom-client

Custom Client

If you want to run the client as part of a supervision tree in your application, you can also use GraphQLWSClient to create your own client.

defmodule MyClient do
  use GraphQLWSClient, otp_app: :my_app
end

Then, you can configure your client using a config file:

import Config

config :my_app, MyClient,
  url: "ws://localhost:4000/socket"

docs

Docs

Documentation can be found at https://hexdocs.pm/graphql_ws_client or generated locally using mix docs.