【发布时间】:2021-08-25 05:20:45
【问题描述】:
我正在构建一个聊天服务,我想处理订阅(websocket)连接断开的情况。 Apollo 客户端配置如下。我删除了不必要的代码,如缓存、authLink 等。
我如何使用 react 来做到这一点,阿波罗客户端?如果它断开连接,我想将其显示到聊天页面,当用户重新连接时,我想获取所有错过的聊天消息。这就是为什么我需要知道断开连接、连接事件
以下是此应用中使用的相关包:
"@apollo/client": "^3.3.7",
"subscriptions-transport-ws": "^0.9.18",
"react": "^17.0.1"
const httpLink = new BatchHttpLink({ uri: config.API_URL })
const wsLink = new WebSocketLink({
uri: config.WS_URL,
options: {
reconnect: true,
connectionParams:{
authToken: accessToken,
},
},
})
const splitLink = split(
({ query }) => {
const definition = getMainDefinition(query)
return definition.kind === 'OperationDefinition' && definition.operation === 'subscription'
},
wsLink,
httpLink
)
const client = new ApolloClient({
cache,
link: from([new SentryLink(), authLink, errorLink, splitLink]),
})
【问题讨论】:
标签: reactjs graphql apollo-client graphql-subscriptions