# Clients multiples

Vous pouvez spécifier plusieurs client Apollo si votre application doit se connecter à différents serveurs GraphQL :

const defaultOptions = {
  // Vous pouvez utiliser `wss` pour sécuriser la connexion (recommandé en production)
  // Utilisez `null` pour désactiver les souscriptions
  wsEndpoint: process.env.VUE_APP_GRAPHQL_WS || 'ws://localhost:4000/graphql',
  // Jeton LocalStorage
  tokenName: AUTH_TOKEN,
  // Activation des requĂȘtes persistĂ©es automatiquement avec Apollo Engine
  persisting: false,
  // Utilisation gĂ©nĂ©rale des websockets (pas de requĂȘtes HTTP)
  // Il vous faudra passer un `wsEndpoint` pour que ça fonctionne
  websocketsOnly: false,
  // Rendu cÎté serveur ?
  ssr: false,
}

const clientAOptions = {
  // Utilisez `https` pour sécuriser la connexion (recommandé en production)
  httpEndpoint: 'http://localhost:4000/graphql',
}

const clientBOptions = {
  httpEndpoint: 'http://example.org/graphql',
}

// Invoquez cette fonction dans votre fichier d'application Vue
export function createProvider (options = {}) {
  const createA= createApolloClient({
    ...defaultOptions,
    ...clientAOptions,
  });

  const createB = createApolloClient({
    ...defaultOptions,
    ...clientBOptions,
  });

  const a = createA.apolloClient;
  const b = createB.apolloClient;

  // Création du provider Vue Apollo
  const apolloProvider = new VueApollo({
    clients: {
      a,
      b
    }
    defaultClient: a,
})

Dans l'option apollo du composant, vous pouvez dĂ©finir un client pour toutes vos requĂȘtes, souscriptions, et mutations avec $client (uniquement pour ce composant) :

export default {
  apollo: {
    $client: 'b',
  },
}

Vous pouvez Ă©galement sp"cifier le client dans chaque requĂȘte, souscription et mutation grĂące Ă  l'option client:

tags: {
  query: gql`...`,
  client: 'b',
}
DerniĂšre mise Ă  jour: 11/02/2021 Ă  11:08:30