Вот кусок кода , который меня интересует (он взят из каталога /examples/
):
Subscription: {
counter: {
subscribe: (parent, args, { pubsub }) => {
const channel = Math.random().toString(36).substring(2, 15) // random channel name
let count = 0
// added var refreshIntervalId =
var refreshIntervalId = setInterval(() => pubsub.publish(channel, { counter: { count: count++ } }), 2000) // <----
return pubsub.asyncIterator(channel)
},
// my new changes that hopefully will work
onDisconnect: (webSocket, context) => {
clearInterval(refreshIntervalId);
}
}
Я немного обеспокоен тем, как лучше (какмогу ли я передать refreshIntervalId между subscribe()
и onDisconnect()
до , чтобы остановить интервал после закрытия соединения.
Обновление : я понял, что должен вставить onDisconnect
по выбору сервера (не в блоке резолвера), так что я, вероятно, думаю, что мне вообще не стоит об этом беспокоиться (по умолчанию он должен обрабатывать отключение).