Apollo 客户端和在线/离线事件

Posted

技术标签:

【中文标题】Apollo 客户端和在线/离线事件【英文标题】:Apollo client and on/offline events 【发布时间】:2019-12-09 14:53:30 【问题描述】:

我从最近几天开始就在寻找这个,几乎把我所有的头发都扯掉了!甚至不确定它是否可能与 apollo-client 一起使用。

是否有一个钩子/发布订阅/事件,我可以使用它来了解应用何时离线以及何时上线?我会认为,因为阿波罗在内部处理这些事情,它会提供一些东西来挂钩。

对于我的小 poc,获取策略设置为“无缓存”并尝试将“notifyOnNetworkStatusChange”设置为 true 和 false,但没有运气。

到目前为止,我已经尝试过以下操作:

使用 apollo-link-error :尝试使用网络错误但它没有触发。 在 <Query ..> 上:尝试使用 OnError 但没有触发 在<Query ..> 结果:尝试使用 NetworkStatus,但设置为 1 或 7 都无济于事。

非常感谢任何帮助。

P

【问题讨论】:

你到底想做什么? Most browsers 已经支持events for that。 我是因为我缺乏使用 apollo 的经验,但是 a)我们希望向用户显示应用程序处于离线状态的状态,这可以通过您所说的轻松完成 b)有反应-table 组件在分页数据中表现不佳。所以我们想做的是当应用离线时从缓存中获取数据(如果有的话)。 听起来你可以just use a hook,而对于后者,只需相应地设置网络策略。 【参考方案1】:

我们能够通过 2 个过程实现这一点,如上所述,第一个使用浏览器事件检查网络可用性,第二个,让您的服务器通过 ping 它返回其在线状态,因为即使您可以访问互联网,您的服务器也可能关闭。

【讨论】:

以上是关于Apollo 客户端和在线/离线事件的主要内容,如果未能解决你的问题,请参考以下文章

Apollo 客户端:如何对自定义事件执行查询

离线/在线数据同步策略

java如何监听MQTT客户端状态(在线离线)

如何在有在线交易时向离线应用发送通知

Apollo 客户端:mutate 不是函数

Android : 通过 SERVER 获取在线或离线状态