Я искал способ обработки разрывов веб-сокетов в своем приложении React с подписками Apollo и не нашел способа сделать это.Другие примеры, которые я вижу в документации 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.
То, что я хотел бы сделать, это перезагрузить мой компонент "чат", если пользователь отключается от Интернета или по какой-либо причине отключается мой экспресс-сервер.Чтобы это произошло, мне понадобится мой компонент чата для полной перезагрузки, что, я не уверен, было бы возможно из-за пределов моего дерева компонентов.
Есть ли в компонентах Apollo Query
или Subscription
метод для захвата этого события и его соответствующей обработки из компонента?