title: Specific mutations client separations
body: <p>I know it is possible to use <code>apollo-link-ws</code> to handle subscriptions in client side. Also i created a client which uses standard <code>http</code> for running <code>Queris</code> and <code>Mutations</code>, and uses <code>WebSocket</code> for <code>subscriptions</code>. But i need to <code>Pub</code> ( emit ) some data to server through websocket too. So a way is using only <code>apollo-link-ws</code> for all actions ( Query, Mutation ). But is it possible to make decision which Query uses Websocket which one uses standard http client? </p>
  
  <pre><code>import { ApolloClient } from 'apollo-client';
  import { getMainDefinition } from 'apollo-utilities';
  import { split } from 'apollo-link';
  import { createUploadLink } from 'apollo-upload-client';
  import { WebSocketLink } from 'apollo-link-ws';
  import { InMemoryCache } from 'apollo-cache-inmemory';
  import { ApolloProvider } from 'react-apollo';
  
  const uploadLink = createUploadLink({
    uri:`http://localhost:8899/graphql`,
    credentials: 'include'
  });
  
  const wsLink = new WebSocketLink({
    uri: `ws://localhost:8899/graphql`,
    options: {
      reconnect: true,
      timeout: 120000,
    }
  })
  
  const client = new ApolloClient({
    link: split(
      // split based on operation type
      ({ query }) =&gt; {
        const definition = getMainDefinition(query);
        console.table(definition);
        return (
          definition.kind === 'OperationDefinition' &amp;&amp;
          definition.operation === 'subscription'
        );
      },
      wsLink,
      uploadLink),
    cache : new InMemoryCache(),
  
  });
  </code></pre>
  
  <p>And i pass the client to <code>ApolloProvider</code>.</p>