#graphql #apollo #apollo-server #graphql-js #graphql-subscriptions
#graphql #apollo #apollo-сервер #graphql-js #graphql-подписки
Вопрос:
Я разрабатываю приложение для чата в реальном времени Apollo GraphQL
, и я хочу, чтобы клиенты были в курсе статуса другого клиента.
Это означает, что мне нужно что-то сделать с событиями OnConnect и onDisconnect из объекта subscriptions (который определен в app.js ) и отправлять событие подписки клиентам всякий раз, когда пользователь подключается или отключается.
Я не смог найти объяснения, как это сделать, и был бы признателен за любую помощь.
Ответ №1:
вы должны использовать свойство onDisconnect с context.initPromise следующим образом:
onDisconnect: async (webSocket, context) => {
console.log('what is the context?: ', context);
try {
const initialContext = await context.initPromise;
if (
initialContext amp;amp;
typeof initialContext === 'object' amp;amp;
Reflect.has(initialContext, 'user')
) {
console.log('initialContext: ', initialContext);
}
} catch (err) {
console.log('error', err); // TypeError:
}
}
},
предупреждение: в настоящее время это работает над моей локальной сборкой, но не над моей производственной сборкой heroku