如何解决subscriptions-transport-ws的错误?

时间:2019-06-21 20:22:02

标签: websocket graphql graphql-subscriptions

问题在于GraphQL订阅请求在GraphQL游乐场中有效: Google DevTools console from GraphQL playground,但是当我使用我的应用程序时:

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

它确实与网络套接字建立了连接(即我没有收到404),但实际上并没有开始发送数据: Google DevTools console from my app

即,不发送开头为

的消息
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', {});

0 个答案:

没有答案