README
Apollo Link using DDP
This is the client part of the DDP setup for Apollo. It works out of the box in a Meteor environment but is also usable with packages like asteroid
.
Installation
meteor npm install --save apollo-link-ddp apollo-link graphql
Setup
This packages gives you a DDPLink
for your Apollo Client. Creating an Apollo Client is the same as with any other Apollo Link.
import { ApolloClient, InMemoryCache } from '@apollo/client';
import { DDPLink } from 'apollo-link-ddp';
export const client = new ApolloClient ({
link: new DDPLink(),
cache: new InMemoryCache()
});
Options
connection
: The DDP connection to use. DefaultMeteor.connection
.method
: The name of the method. Default__graphql
.publication
: The name of the publication. Default__graphql-subscriptions
.ddpRetry
: Retry failed DDP method calls. Defaulttrue
. Switch off and use apollo-link-retry for more control.socket
: Optionally pass a socket to listen to for messages. This makes it easy to integrate with non-Meteor DDP clients.
// Pass options to the DDPLink constructor
new DDPLink({
connection: Meteor.connection
});
Asteroid
Setup withconst Asteroid = createClass();
const asteroid = new Asteroid({
endpoint: 'ws://localhost:3000/websocket',
});
const link = new DDPLink({
connection: asteroid,
socket: asteroid.ddp.socket,
subscriptionIdKey: 'id',
});
SimpleDDP
Setup withDDP-Apollo works with SimpleDDP version 2 and up.
const SimpleDDP = require('simpleddp');
const connection = new SimpleDDP({
endpoint: 'ws://localhost:3000/websocket',
SocketConstructor: global.WebSocket,
});
this.link = new DDPLink({
connection: connection,
socket: connection.ddpConnection.socket,
});