javascript - Apollo 订阅 - 使用 subscribeToMore 处理 WS 断开连接
问题描述
我一直在寻找一种通过 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
或Apollo 组件中是否有方法Subscription
能够捕获此事件并从组件中相应地处理它?
解决方案
推荐阅读
- r - 构建 Vignette - R 包开发时出错
- sql-server - 将 UTF-8 varbinary(max) 转换为 varchar(max)
- lua - Luacheck 包含排除目录中的文件
- reactjs - 如何使用 React Router 路由到文件夹中的文件?
- c - 我怎么知道线程是否仍在工作?
- testing - 在 RTL 中镜像金丝雀部署?
- python - 将numpy数组解析为单值的改进建议
- reactjs - 使用 Next.js 预加载 getServerSideProps 数据?
- ubuntu-18.04 - 如何调用 POCO 的 PageCompiler?
- python - PIL.Image.open 在打开 PNG 文件时仅显示两种颜色