@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/
Crowd-funded open-source software
To help us develop this software sustainably under the MIT license, we ask
all individuals and businesses that use it to help support its ongoing
maintenance and development via sponsorship.
And please give some love to our featured sponsors 🤩:
* Sponsors the entire Graphile suite
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,
subscriptionEventEmitterMaxListeners: 20,
websocketMiddlewares: [
],
};
const app = express();
app.use(postgraphile(databaseUrl, "app_public", postgraphileOptions));
app.listen(parseInt(process.env.PORT, 10) || 3000);