Как я могу исправить ошибку с subscription-transport-ws? - PullRequest
0 голосов
/ 21 июня 2019

Проблема в том, что запрос на подписку GraphQL работает на площадке GraphQL: Консоль Google DevTools с площадки GraphQL , но когда я использую ее, мое приложение:

const subscriptionClient = new SubscriptionClient('wss://url/subscriptions', {});
...
const urqlClient = createClient({
  url: '/graphql',
  exchanges: [
    ...
    subscriptionExchange({
      forwardSubscription: operation => subscriptionClient.request(operation),
    }),
    ...
  ],
});

устанавливает соединениес веб-сокетом (т.е. я не получаю 404), но фактически не начинает отправку данных: Консоль Google DevTools из моего приложения

т.е. не отправляетсообщение, которое начинается с

id: 1, type: start...

, что в основном означает, что метод .publish() не вызывается:

setInterval(() => {
  fetch(`${dummy_url}/api/me`, {
    method: 'GET',
    headers: {
      cookie: context.cookie,
    },
  }).then(res => {
    res.json().then(json => {
      context.pubsub.publish(channel, {
        get_cool_endpoint: json,
      });
    });
  });
}, PORT);

На что мне обратить внимание, чтобы найти проблему?

примечание: эта настройка также работает, если я использую следующее (т.е. запускаю его локально):

const subscriptionClient = new SubscriptionClient('ws://localhost:${PORT}/subscriptions', {});
...