【问题标题】:Bad timing Apollo Subscription错误的时机阿波罗订阅
【发布时间】:2018-05-04 21:48:29
【问题描述】:

我在订阅方面遇到了一些问题,逻辑已实现并且可以正常工作,我只想在登录后立即获取令牌(我可以在刷新时获取它,但这不是我想要的方式)

我正在使用带有 subscriptions-transport-ws 的 apollo 客户端,并像这样初始化客户端

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

如果有人知道这是从哪里来的,那将非常有帮助

【问题讨论】:

    标签: apollo


    【解决方案1】:

    我已经看到了两种解决此问题的方法。我也没有尝试过。

    您可以在身份验证 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
    )
    

    我会尽快尝试并报告。

    【讨论】:

      猜你喜欢
      • 2017-12-11
      • 2020-09-26
      • 2021-01-05
      • 2017-11-20
      • 2021-02-13
      • 2021-09-17
      • 2020-12-26
      • 2018-05-28
      • 2013-02-02
      相关资源
      最近更新 更多