gpt4 book ai didi

apollo - 如何动态更改 Apollo Web Socket Link URI?

转载 作者:行者123 更新时间:2023-12-05 05:08:07 26 4
gpt4 key购买 nike

目前我已经像这样设置了 Apollo 的网络套接字链接:

const wsLink = new WebSocketLink({
uri: `ws://example.com/graphql?token=${getToken()}`,
options: {
reconnect: true,
connectionParams(): ConnectionParams {
return {
authToken: getToken(),
};
},
},
});

这在连接持续时工作正常,但如果查询字符串中的 token 已过期,则在需要重新建立连接时失败。

我处理的基础设施的设置方式要求将此 token 设置为 URI 中的查询参数。如何动态更改 URI,以便在需要重新建立连接时提供新 token ?

最佳答案

您可以在函数setContext https://www.apollographql.com/docs/link/links/context/ 中手动设置属性wsLink.subscriptionClient.url(或创建一个新的subscriptionClient 实例?) .

例如:

import { setContext } from 'apollo-link-context'
...

const wsLink = your code...

const authLink = setContext(() => {
wsLink.subscriptionClient.url = `ws://example.com/graphql?token=${getToken()}`
})

...

const config = {
link: ApolloLink.from([
authLink,
wsLink
]),
...
}

关于apollo - 如何动态更改 Apollo Web Socket Link URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58522816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com