19 lines
1,017 B
Markdown
19 lines
1,017 B
Markdown
# Subscriptions
|
|
|
|
Our little React app is pretty neat. When it loads it queries the server for a list of people and shows their faces and allows us to run a mutation to add a new person to our list.
|
|
|
|
There's only one problem. What happens if someone else comes along and adds a face to our gallery? Our client won't know that the data has changed and will just keep showing us stale data. This is where [GraphQL Subscriptions](http://graphql.org/blog/subscriptions-in-graphql-and-relay/) come in.
|
|
|
|
Absinthe has built-in support for subscriptions and since we're using Phoenix we have a well-tested channel implementation to run it over (Absinthe can use it's own socket protocol too, if you're not running in Phoenix).
|
|
|
|
Notable changes:
|
|
|
|
* `lib/faces_web/endpoint.ex`
|
|
* `lib/faces_web/schema/schema.ex`
|
|
* `lib/faces_web/channels/user_socket.ex`
|
|
* `assets/js/absinthe-socket-link.js`
|
|
* `assets/js/client.js`
|
|
* `assets/js/queries/person_added.js`
|
|
* `assets/js/queries/list_people.js`
|
|
|
|
Next, take a look at `step-6`.
|