【发布时间】:2019-07-12 18:26:33
【问题描述】:
我一直在寻找一种方法来处理我的带有 Apollo 订阅的 React 应用程序中的 Web 套接字断开连接,但还没有找到这样做的方法。我在 apollo 文档中看到的其他示例显示了以下捕获重新连接的方法:
const wsClient = process.browser ? new SubscriptionClient(WSendpoint, {
reconnect: true,
}) : null;
const wsLink = process.browser ? new WebSocketLink(wsClient) : null;
if (process.browser) {
wsLink.subscriptionClient.on(
'reconnected',
() => {
console.log('reconnected')
},
)
}
上述方法存在两个问题:
- 当用户从他们的互联网断开连接时(仅在服务器因任何原因重新启动时)不会捕获
- 重新连接是在我的 React 应用程序组件之外触发的。
如果用户与互联网断开连接或我的快速服务器因任何原因出现故障,我希望能够重新加载我的“聊天”组件。为此,我需要我的聊天组件完全重新加载,我不确定从我的组件树之外是否有可能。
Query 或 Subscription Apollo 组件中是否有方法能够捕获此事件并从组件中相应地处理它?
【问题讨论】:
标签: javascript websocket graphql apollo