Проблема в том, что запрос на подписку 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', {});