Плохое время подписки Apollo - PullRequest
0 голосов
/ 04 мая 2018

У меня есть некоторые проблемы с подписками, логика реализована и работает, я просто хочу получить токен, как только я войду в систему (я могу получить его, когда я делаю обновление, а это не так, как я хочу)

Я использую клиент apollo с subscription-transport-ws и инициализирую клиента вот так

const wsClient = new SubscriptionClient(SUB_ENDPOINT, {
reconnect: true,
timeout: 30000,
connectionParams: {
token: JSON.parse(localStorage.getItem(‘token’))
}
})

Если у кого-нибудь есть подсказка, откуда это может быть полезно, то

1 Ответ

0 голосов
/ 04 мая 2018

Я видел два способа решения этой проблемы. Я еще не пробовал.

Вы можете закрыть соединение при аутентификации wsClient.close (false, false) или создать разделенную ссылку с аутентифицированными и неаутентифицированными маршрутами.

function isAuthenticated() { ... <true || false> }

const unauthenticatedLink = new WebSocketLink({
  uri: `ws://localhost:5000/`,
  options: {
    reconnect: true
  }
})

const authenticatedLink = new WebSocketLink({
    uri: `ws://localhost:5000/`,
    options: {
      reconnect: true,
      connectionParams: {
          token: localStorage.getItem('token')
      }
    }
  })

const link = split(
  () => isAuthenticated(),
  authenticatedLink,
  unauthenticatedLink
)

Я скоро попробую и сообщу.

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