@graphile/pg-pubsub
This PostGraphile server
plugin provides a pubsub
instance to schema
plugins that uses
PostgreSQL LISTEN/NOTIFY to provide realtime features.
Also adds support for @pgSubscriptions directive to easily define your own
subscriptions using LISTEN/NOTIFY with makeExtendSchemaPlugin; and adds the
--simple-subscriptions feature which, when enabled, adds a simple listen
subscription field to your GraphQL API.
It's intended that you use this plugin as a provider of realtime data to
other plugins which can use it to add subscription fields to your API.
For full documentation, see: https://www.graphile.org/postgraphile/subscriptions/
Usage
CLI:
yarn add @graphile/pg-pubsub
postgraphile \
--plugins @graphile/pg-pubsub \
--subscriptions \
--simple-subscriptions \
-c postgres:///mydb
Library:
const express = require("express");
const { postgraphile, makePluginHook } = require("postgraphile");
const { default: PgPubsub } = require("@graphile/pg-pubsub");
const pluginHook = makePluginHook([PgPubsub]);
const postgraphileOptions = {
pluginHook,
subscriptions: true,
simpleSubscriptions: true,
websocketMiddlewares: [
],
};
const app = express();
app.use(postgraphile(databaseUrl, "app_public", postgraphileOptions));
app.listen(parseInt(process.env.PORT, 10) || 3000);