Ошибка подключения к Graphql - только получение запроса или подписки или обоих - PullRequest
1 голос
/ 22 октября 2019

Мы сталкиваемся с ошибкой при настройке нашего приложения для подключения к GraphQL. Нашей основной потребностью являются подписки, в настоящее время наш код прекрасно справляется с этим. Но наши запросы отвечают "Leads not found in query_root"

Когда мы изменяем позиционирование нашего кода подключения, запрос теперь будет работать, но подписки прекратят подключение.

const scheme = proto => {
    return window.location.protocol === 'https:' ? `${proto}s` : proto;
};

const wsurl = `${scheme('ws')}://${HASURA_GRAPHQL_ENGINE_HOSTNAME}/v1/graphql`;
const httpurl = `${scheme('http')}://${HASURA_GRAPHQL_ENGINE_HOSTNAME}/v1/graphql`;

// Create a WebSocket link:
const wsLink = new WebSocketLink({
    uri: wsurl,
    options: {
        reconnect: true,
        connectionParams: {
            headers: {
                'x-hasura-access-key': `${HASURA_ACCESS_KEY}`
            }
        }
    }
});

const httpLink = new HttpLink({
    uri: httpurl,
    options: {
        connectionParams: {
            headers: {
                'x-hasura-access-key': `${HASURA_ACCESS_KEY}`
            }
        }
    }
});

const link = split(
    // split based on operation type
    ({ query }) => {
        const { kind, operation } = getMainDefinition(query);
        return kind === 'OperationDefinition' && operation === 'subscription';
    },
    wsLink,
    httpLink
);

const client = new ApolloClient({
    link,
    cache: new InMemoryCache()
});

export default client;

В ссылкеconst, если мы поместим wsLink ниже httpLink, то wsLink остановится и httpLink заработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...